Как узнать название класса из статик метода в java?
Как узнать название класса из статик метода в java
public String tag = this.getLocalClassName();
Делаю так, но он годится только для не статик метода.
Источник: Stack Overflow на русском
Как узнать название класса из статик метода в java
public String tag = this.getLocalClassName();
Делаю так, но он годится только для не статик метода.
Попробуйте это, должно помочь. Скорее всего, все упирается в this, из-за того что метод статичный.
Не знаю, как это относится к Андроиду, поэтому напишу, как получить имя класса, даже если этот метод статический.
class A{
public A() {
String name=getClassName(this.getClass());
}
public static String getClassName(Class<?> clazz){
return clazz.getName();
}
}
Ну я нигде не упоминал имя класса явно. Однако можно указать его явно и избеждать писанины. Я же вижу, из какого класса я вызываю этот метод. Поэтому я пишу имя. Класс, в котором находится метод:
class A{
public A() {
}
public static String getClassName(){
return A.class.getCanonicalName();
}
}
getCanonicalName()
, или getName()
, или getSimpleName()
- я думаю, сам разберёшься, какой тебе нужен.
Вариант первого способа:
class A{
public A() {
String name=getClassName(this);
}
public static String getClassName(Object ob){
return ob.getClass().getName();
}
}