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

Что возвращает classname.class?

Может ли кто-нибудь объяснить, что возвращает SomeClassname.class в JAVA? Я не могу понять, что он делает.

4b9b3361

Ответ 1

Возвращает то же самое, что Object.getClass() для конкретного экземпляра, но вы можете использовать его, когда знаете статически, какой класс вы (т.е. во время компиляции).

Из Javadoc:

Возвращает класс выполнения этого объекта.

Короче говоря, он дает вам объект, представляющий класс (исходного) объекта. Он использовал, помимо прочего, reflection, когда вы хотите программно обнаруживать методы и поля для вызова/доступа к ним.

Например:

        Method m[] = String.class.getDeclaredMethods();
        for (int i = 0; i < m.length; i++)
        {
          System.out.println(m[i].toString());
        }

Javadoc также ссылается на Специфика языка Java - классные литералы (что может быть немного тяжелым чтением).

Ответ 2

Он возвращает объект класса, который представляет указанное имя класса. Это используется, если вам нужно получить объект Class.

Это примерно соответствует .getClass(), который возвращает объект класса, соответствующий экземпляру объекта. Вы используете someclassname.class, когда хотите работать с объектом Class и не имеете экземпляр объекта.

Ответ 3

.class - это литерал класса... Так же, как 5 - это int literal, например 5.0 - это двойной литерал (удивительно, что в пакете java.lang есть класс с именем "Class" ).

Поэтому вы можете распечатать литерал класса (так же, как вы можете распечатать любой объект... вы получаете то, что возвращает метод toString() в классе класса). Вы можете иметь переменную класса.

PS: есть много функций, которые вы можете использовать

Ответ 4

То же, что и метод .getClass(), но может использоваться только для классов named и void. Синтаксис .class позволяет получить класс, если тип объекта доступен, но нет экземпляра. Кроме того, самый простой способ получить класс для примитивного типа.

Ответ 5

Это так же, как Class object = SomeClass.class; Вышеприведенный оператор вернет объект этого конкретного класса и поместит его в переменную класса. Куры это вернут объект класса.

Ответ 6

Object.getclass= className.class

Они оба возвращают класс времени выполнения объекта

например

Class lii = SomeClass.class;
Class leo = new SomeClass().getClass();
//lii==leo

Как

String var1 = "heloo";
int var2 = 9;
float var3 = 8.0;

var1 хранит "heloo", который является литералом String, var2 хранит 9, который является целочисленным литералом, var3 хранит 8.0, который является литералом с плавающей запятой, поэтому также lii и leo хранят литерал класса, сгенерированный из файла SomeClass.java во время выполнения