Spec-Zone .ru
спецификации, руководства, описания, API
|
java.lang.Class
Class
представьте классы и интерфейсы в пути, которым может управлять рабочая программа Java. Каждый массив также принадлежит классу, представленному a Class
объект, который совместно используется среди всех массивов с тем же самым типом элемента и числом размерностей. Нет никакого общедоступного конструктора для класса Class
. Виртуальная машина Java автоматически создает Class
объекты как классы загружаются; такие объекты не могут быть созданы пользовательскими программами.
public final classClass
{ public StringtoString
(); public StringgetName
(); public booleanisInterface
(); public ClassgetSuperclass
(); public Class[]getInterfaces
(); public ObjectnewInstance
() throws InstantiationException, IllegalAccessException; public ClassLoadergetClassLoader
(); public static ClassforName
(String className)
throws ClassNotFoundException; }
20.3.1 public String
toString
()
Если это Class
объект представляет класс (который может быть объявленным классом или классом массива), строка возвращается состоящий из слова class
, пространство, и имя класса как возвращено getName
метод (§20.3.2). Если это Class
объект представляет интерфейс, строка возвращается состоящий из слова interface
, пространство, и имя интерфейса как возвращено getName
метод.
Другими словами этот метод возвращает строку, равную значению:
(isInterface() ? "interface " : "class ") + getName()Переопределения
toString
метод Object
(§20.1.2).20.3.2 public String
getName
()
Полностью определенное имя класса или интерфейса представляется этим Class
объект возвращается как a String
. Например:
new Object().getClass().getName()
возвраты "java.lang.Object"
. Если этот объект класса представляет класс массивов, то имя состоит из имени элемента, вводят формат подписи Java, которому предшествуют один или более"[
"символы, представляющие глубину вложения массива. Например:
(new Object[3]).getClass().getName()
возвраты "[Ljava.lang.Object;"
и: (new int[3][4][5][6][7][8][9]).getClass().getName()
возвраты "[[[[[[[I"
. Кодирование имен типов элемента следующие: B byte C char D double F float I int J long Lclassname; class or interface S short Z booleanИмя класса имени класса или интерфейса дается в полностью определенной форме как показано в примере выше. Поскольку полное описание дескрипторов типа видит главу по формату файлов класса в Спецификации виртуальной машины Java.
20.3.3 public boolean
isInterface
()
Если это Class
объект представляет интерфейс, true
возвращается. Если это Class
объект представляет класс, false
возвращается.
20.3.4 public Class
getSuperclass
()
Если это Class
объект представляет любой класс кроме класса Object
, тогда Class
это представляет суперкласс того класса, возвращается. Если это Class
объект является тем, который представляет класс Object
, или если это представляет интерфейс, null
возвращается. Если это Class
объект представляет класс массива, тогда Class
это представляет класс Object
возвращается.
20.3.5 public Class[]
getInterfaces
()
Этот метод возвращает массив объектов, которые представляют интерфейсы. Массив может быть пустым.
Если это Class
объект представляет класс, массив содержит объекты, представляющие все интерфейсы, непосредственно реализованные классом. Порядок интерфейсных объектов в массиве соответствует порядку интерфейсных имен в implements
пункт объявления класса представляется этим Class
объект. Например, учитывая объявление класса:
class Shimmer implements FloorWax, DessertTopping { ... }предположите значение
s
экземпляр Shimmer
; значение выражения: s.getClass().getInterfaces()[0]
Class
объект, который представляет интерфейс FloorWax
; и значение: s.getClass().getInterfaces()[1]
Class
объект, который представляет интерфейс DessertTopping
. Если это Class
объект представляет интерфейс, массив содержит объекты, представляющие все интерфейсы, непосредственно расширенные интерфейсом - то есть, непосредственными суперинтерфейсами интерфейса. Порядок интерфейсных объектов в массиве соответствует порядку интерфейсных имен в extends
пункт объявления интерфейса представляется этим Class
объект.
20.3.6 public Object
newInstance
()
throws InstantiationException, IllegalAccessException
Этот метод создает и возвращает новый экземпляр класса, представленного этим Class
объект. Это делается точно как будто по выражению создания экземпляра класса (§15.8) с пустым списком параметров; например, если t
Class
объект, который представляет класс Thread
, тогда t.newInstance()
делает точно ту же самую вещь как new
Thread()
. Если бы оценка такого выражения создания экземпляра класса завершилась бы резко, то звонок newInstance
метод завершится резко по той же самой причине. См. также §11.5.1.2 для больше на InstantiationException
.
20.3.7 public ClassLoader
getClassLoader
()
Этот метод возвращает ссылку на загрузчик класса (§20.14), который загрузил этот класс. Если у этого класса нет никакого загрузчика класса, то null
возвращается.
20.3.8 public static Class
forName
(String className)
throws ClassNotFoundException
Учитывая полностью определенное имя класса, этот метод пытается определить местоположение, загрузить, и соединить класс (§12.2). Если это успешно выполняется, то ссылка на Class
объект для класса возвращается. Если это перестало работать, то a ClassNotFoundException
бросается.
Содержание | Предыдущий | Следующий | Индекс
Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com