Подтвердить что ты не робот

Является ли класс классом или полем?

Любой класс в java имеет .class, я хочу знать .class - статический метод или нет? Или это общедоступное статическое поле?

boolean alwaysTrue = (String.class == Class.forName("java.lang.String"));
4b9b3361

Ответ 1

Ничего. Это встроенная функция языка (литерал класса), который выглядит как публичное статическое конечное поле.

Ответ 2

Когда вы пишете .class после имени класса, он ссылается на объект Class, который представляет данный класс. .class используется, когда экземпляр класса отсутствует.

Например, если ваш класс Print (рекомендуется, чтобы имя класса начиналось с прописной буквы), тогда Print.class - это объект, который представляет класс Print во время выполнения. Это тот же объект, который возвращается методом getClass() любого (прямого) экземпляра Print.

Print myPrint = new Print();
System.out.println(Print.class.getName());
System.out.println(myPrint.getClass().getName());