Рассмотрим этот код JavaJava, получить объект класса для размещения класса, не выполнения Класс
class A{
//@returns Class object this method is contained in
// should be A in this case
public Class<?> f() {
return getClass();
}
}
class B extends A {}
B b = new B();
System.out.println(b.f());
//output -- B.class (Wrong, should be A.class)
внутри f()
я не могу использовать getClass()
потому, что даст мне runtype, который B
. Я ищу способ, чтобы получить Class
объект class
f()
находится внутри (не упоминая A
явно, очевидно)
Почему вы не хотите упоминать Я явно? 'A.class' кажется самым простым решением. –
Я думаю, что если вам нужно выяснить, какой именно тип вашего экземпляра во время выполнения, дает сильный сигнал о том, что необходимо выполнить некоторые рефакторинг или переосмысление. – aberrant80