Предположим, у меня есть базовый класс с именем Entity
. В этом классе у меня есть статический метод для получения имени класса:Получение имени подкласса из суперкласса
class Entity {
public static String getClass() {
return Entity.class.getClass();
}
}
Теперь у меня есть еще один класс.
class User extends Entity {
}
Я хочу, чтобы получить имя класса пользователя:
System.out.println(User.getClass());
Моя цель состоит, чтобы увидеть «com.packagename.User» выводится на консоль, но вместо этого я собираюсь закончить с «com.packagename.Entity», поскольку класс Entity ссылается непосредственно из статического метода.
Если это не был статический метод, это можно легко решить, используя ключевое слово this
в классе Entity
(то есть: return this.class.getClass()
). Однако мне нужно, чтобы этот метод оставался статичным. Любые предложения о том, как подойти к этому?
Спасибо за разъяснение, я думаю, я не знаю достаточно о том, как статические методы компилируются. Это помогает разобраться в этом, мне придется работать над альтернативным решением. –
+1, точно вправо. Весь этот вопрос возникает из-за непонимания того, как работают статические методы. –