標籤:應用程式 名稱 protect 規範 基本類型 cdecl ted imp foo
Java的基本思想之一是萬事萬物即對象,類也是一種對象。但是類是什麼對象呢?Java中的類是java.lang.Class的執行個體化對象,這被成為類類型。
//java.lang.Class類中的的主要方法如下
下面是Java1.8 API中java.lang.Class類中的方法:
va.lang中Class Class <T>
java.lang.Object繼承的java.lang.Class<T>
型別參數:
T - 由此Class對象建模的類的類型。 例如,String.class的類型是Class <String>。 如果正在建模的類未知,請使用Class <?>。
所有已實現的介面:
Serializable,AnnotatedElement,GenericDeclaration,Type
類定義
public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement
類Class的執行個體表示正在啟動並執行Java應用程式中的類和介面。 枚舉是一種類,注釋是一種介面。 每個數組也屬於一個類,它反映為一個Class對象,由具有相同元素類型和維數的所有數組共用。 原始Java類型(boolean,byte,char,short,int,long,float和double)以及關鍵字void也表示為Class對象。
類沒有公用建構函式。 相反,類對象由Java虛擬機器在載入類時自動構造,並通過調用類載入器中的defineClass方法。
以下樣本使用Class對象來列印對象的類名:
void printClassName(Object obj) {
System.out.println("The class of " + obj +
" is " + obj.getClass().getName());
}
也可以使用類文字擷取命名類型(或void)的Class對象。 請參閱Java?語言規範的第15.8.2節。 例如:
System.out.println("The name of class Foo is: "+Foo.class.getName());
方法摘要:
修飾符和類型 方法和描述
<U> Class<? extends U>asSubclass(Class<U> clazz)
轉換此Class對象以表示由指定的類對象表示的類的子類。
T cast(Object obj)
將對象強制轉換為此Class對象所表示的類或介面。
booleandesiredAssertionStatus()
如果要在調用此方法時初始化,則返回將分配給此類的斷言狀態。
static Class<?>forName(String className)
返回與具有給定字串名稱的類或介面關聯的Class對象。
static Class <?> forName(String name,boolean initialize,ClassLoader loader)
使用給定的類載入器返回與具有給定字串名稱的類或介面關聯的Class對象。
AnnotatedType[] getAnnotatedInterfaces()
返回AnnotatedType對象的數組,這些對象表示使用類型來指定此Class對象所表示的實體的超介面。
AnnotatedType getAnnotatedSuperclass()
返回AnnotatedType對象,該對象表示使用類型來指定此Class對象所表示的實體的超類。
<A extends Annotation> A getAnnotation(Class<A> annotationClass)
如果存在這樣的注釋,則返回指定類型的此元素的注釋,否則返回null。
Annotation[] getAnnotations()
返回此元素上存在的注釋。
<A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)
返回與此元素關聯的注釋。
String getCanonicalName()
返回Java語言規範定義的基礎類的正式名稱。
Class<?>[] getClasses()
返回一個數組,其中包含Class對象,這些對象表示作為此Class對象所表示的類的成員的所有公用類和介面。
ClassLoader getClassLoader()
返回類的類載入器。
Class<?> getComponentType()
返回表示數組的組件類型的Class。
Constructor<T> getConstructor(Class<?>... parameterTypes)
返回一個Constructor對象,該對象反映此Class對象所表示的類的指定公用建構函式。
Constructor<?>[] getConstructors()
返回一個包含Constructor對象的數組,這些對象反映此Class對象所表示的類的所有公用建構函式。
<A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)
如果直接存在這樣的注釋,則返回指定類型的此元素的注釋,否則返回null。
Annotation[] getDeclaredAnnotations()
返回直接出現在此元素上的注釋。
<A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)
如果此類注釋直接存在或間接存在,則返回指定類型的此元素的注釋。
Class<?>[] getDeclaredClasses()
返回Class對象的數組,這些對象反映聲明為此Class對象所表示的類的成員的所有類和介面。
Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
返回一個Constructor對象,該對象反映此Class對象所表示的類或介面的指定建構函式。
Constructor<?>[] getDeclaredConstructors()
返回Constructor對象的數組,這些對象反映由此Class對象表示的類聲明的所有建構函式。
Field getDeclaredField(String name)
返回一個Field對象,該對象反映此Class對象所表示的類或介面的指定聲明欄位。
Field[] getDeclaredFields()
返回Field對象的數組,這些對象反映由此Class對象表示的類或介面聲明的所有欄位。
Method getDeclaredMethod(String name, Class<?>... parameterTypes)
返回一個Method對象,該對象反映此Class對象所表示的類或介面的指定聲明方法。
Method[] getDeclaredMethods()
返回一個數組,其中包含反映此Class對象所表示的類或介面的所有聲明方法的Method對象,包括public,protected,default(包)訪問和私人方法,但不包括繼承的方法。
Class<?> getDeclaringClass()
如果此Class對象表示的類或介面是另一個類的成員,則返回表示聲明它的類的Class對象。
Class<?> getEnclosingClass()
返回基礎類的直接封閉類。
Constructor<?> getEnclosingConstructor()
如果此Class對象表示建構函式中的本地或匿名類,則返回一個Constructor對象,該對象表示基礎類的直接封閉建構函式。
Method getEnclosingMethod()
如果此Class對象表示方法中的本地或匿名類,則返回表示基礎類的直接封閉方法的Method對象。
T[] getEnumConstants()
返回此枚舉類的元素,如果此Class對象不表示枚舉類型,則返回null。
Field getField(String name)
返回一個Field對象,該對象反映此Class對象所表示的類或介面的指定公用成員欄位。
Field[] getFields()
返回一個包含Field對象的數組,這些對象反映此Class對象所表示的類或介面的所有可訪問公用欄位。
Type[] getGenericInterfaces()
返回表示由此對象表示的類或介面直接實現的介面的Types。
Type getGenericSuperclass()
返回表示此Class表示的實體(類,介面,基本類型或void)的直接超類的Type。
Class<?>[] getInterfaces()
確定由此對象表示的類或介面實現的介面。
Method getMethod(String name, Class<?>... parameterTypes)
返回一個Method對象,該對象反映此Class對象所表示的類或介面的指定公用成員方法。
Method[] getMethods()
返回一個包含Method對象的數組,這些對象反映此Class對象所表示的類或介面的所有公用方法,包括由類或介面聲明的那些以及從超類和超介面繼承的那些。
int getModifiers()
返回此類或介面的Java語言修飾符,以整數編碼。
String getName()
以String形式返回此Class對象表示的實體名稱(類,介面,數組類,基本類型或void)。
Package getPackage()
擷取此類的包。
ProtectionDomain getProtectionDomain()
返回此類的ProtectionDomain。
URL getResource(String name)
尋找具有給定名稱的資源。
InputStream getResourceAsStream(String name)
尋找具有給定名稱的資源。
Object[] getSigners()
擷取此類的簽名者。
String getSimpleName()
返回原始碼中給出的基礎類的簡單名稱。
Class<? super T> getSuperclass()
返回表示此Class表示的實體(類,介面,基本類型或void)的超類的Class。
String getTypeName()
返回此類型名稱的資訊字串。
TypeVariable<Class<T>>[] getTypeParameters()
返回TypeVariable對象的數組,這些對象表示由此GenericDeclaration對象以聲明順序表示的泛型聲明聲明的類型變數。
boolean isAnnotation()
如果此Class對象表示注釋類型,則返回true。boolean isAnnotationPresent(Class <?extends Annotation> annotationClass)如果此元素上存在指定類型的注釋,則返回true,否則返回false。
boolean isAnonymousClass()
若且唯若基礎類是匿名類時返回true。
boolean isArray()
確定此Class對象是否表示數組類。
boolean isAssignableFrom(Class<?> cls)
確定此Class對象表示的類或介面是否與指定的Class參數表示的類或介面相同,或者是它們的超類或超介面。
boolean isEnum()
若且唯若此類在原始碼中聲明為枚舉時返回true。
boolean isInstance(Object obj)
確定指定的Object是否與此Class表示的對象分配相容。
boolean isInterface()
確定指定的Class對象是否表示介面類型。
boolean isLocalClass()
若且唯若基礎類是本地類時返回true。
boolean isMemberClass()
若且唯若底層類是成員類時返回true。
boolean isPrimitive()
確定指定的Class對象是否表示基本類型。
boolean isSynthetic()
如果此類是合成類,則返回true; 否則返回false。
T newInstance()
建立此Class對象表示的類的新執行個體。
String toGenericString()
返回描述此Class的字串,包括有關修飾符和型別參數的資訊。
String toString()
將對象轉換為字串。
Java反射——java.lang.Class 類簡介