2011-12-29 9 views
1

Это вопрос, который задают мне в одном из интервью,Использование класса класса в Java

Что такое использование Class класса, как интерпретирует JVM, если мы пишем test.class в файле test.java.

Test.java 

Class c = Test.class; 

Пожалуйста, поделитесь своими мыслями

+0

Где проблема? ? Является ли 'test' экземпляром' Test'? – home

+0

Извините, что это была опечатка ... Test.class –

+2

«Пожалуйста, поделитесь своими мыслями» -> «Мой вопрос подходит для закрытия» –

ответ

0

Вы можете использовать класс класса всякий раз, когда хотите получить информацию о классе. например, если вы хотите, если имя класса com.example.ZiggyTest2 затем выполнить определенную задачу

Пример

Реализация

void doSomeThingOnBasisOfClassName(Class c){ 
      System.out.println(c.getCanonicalName()); 
      if(c.getCanonicalName().equals("com.example.ZiggyTest2")){ 
       System.out.println("Do some thing"); 
      } 
     } 

вызова метода в стороне любой класс

Class c = ZiggyTest2.class; 
doSomeThingOnBasisOfClassName(c); 
+0

Спасибо за объяснение приятеля –

0

The java specification 15.8.2 Class Literals

Класс литерал выражение, состоящее из имени класса, интерфейса, массив или примитивного типа, за которым следует `«. и класс токенов. Тип литерала класса - это класс. Он оценивает объект класса для именованного типа (или для void) как , определяемый определяющим загрузчиком класса класса текущего экземпляра .

Таким образом, Test.class является литералом класса, JVM оценит его на объекте Class. Вы можете получить информацию (например, ее методы, поля, аннотации и т. Д.) О классе Test от его объекта Class

+0

Спасибо за объяснение приятеля –

Смежные вопросы