2014-09-02 4 views
0

Что именно означает следующая конструкция: MyClassName.class?Что такое MyClassName.class в Java

Сначала я думал, что MyClassName.class будет представлять доступ к статической переменной класса, определенного для MyClassName класса, но это было бы верно, то следующее назначение должно быть возможно:

MyClassName m = new MyClassName(); 
Class<MyClassName> clazz = m.class; //access static class variable by using an instance variable 

Что такое истинный смысл от MyClassName.class? Это статическая переменная класса? это специальная конструкция Java?

+0

проверить это: http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html – elmorabea

ответ

1

Каждый класс в Java имеет связанный с ним экземпляр java.lang.Class, который содержит метаданные о классе, т.е. его атрибуты, типы, методы, супер класс и т.д.

Здесь MyClassName.class называется литерал класса , Ссылка на документ Java для дальнейшей информации - http://docs.oracle.com/javase/specs/jls/se5.0/html/expressions.html#15.8.2