Рассмотрим следующий Java класс:Можно ли получить доступ к объекту Class в статическом методе?
public class Foo
{
public static void doStuff()
{
// boring stuff here
}
}
Есть ли возможность доступа к одному классу буквальным Foo.class
, или только имя класса "Foo"
внутри статического метода, такого как doStuff()
? В нестационарном методе я бы просто вызвал this.getClass()
, но нет this
для использования в статическом методе.
Edit: жаль, что это не было ясно - я хочу сделать это с явным использованием класса буквального Foo.class
.
Чтобы ответить на ваш вопрос, да, вы можете использовать 'Foo.class' в статическом методе, но не' this.getClass() '. Это единственная причина, по которой это будет проблемой, - это причудливое наследование статического метода Java (серьезно, статические методы не должны попадать в дочерние классы ... C# явно запрещает это). – Powerlord
Статические методы не являются виртуальными в Java. Это одна из причин использования шаблона фабрики. –
@ Ха - Я не следую. –