語言

Class 類別

定義

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

[Android.Runtime.Register("java/lang/Class", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public sealed class Class : Java.Lang.Object, IDisposable, Java.IO.ISerializable, Java.Lang.Invoke.ITypeDescriptor.IOfField, Java.Lang.Reflect.IGenericDeclaration, Java.Lang.Reflect.IType
[<Android.Runtime.Register("java/lang/Class", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type Class = class
    inherit Object
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ITypeDescriptor.IOfField
    interface ITypeDescriptor
    interface IGenericDeclaration
    interface IAnnotatedElement
    interface IType
繼承
屬性
實作

備註

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。 列舉類別和記錄類別是類別的類型;註解介面是一種介面。 每個陣列也屬於一個類別,該類別反映為 Class 一個物件,所有具有相同元素類型與維度數的陣列皆共享。 原始 Java 類型(booleanbytecharshortintlongfloatdouble和 )以及關鍵字void也以物件形式表示。Class

Class 沒有公開建造者。 取而代Class之的是,當 Java 虛擬機器透過以下方法class之一從檔案的位元組<衍生出類別時,會自動建構物件:ul><li>ClassLoader#defineClass(String, byte[], int, int) ClassLoader::defineClass</ul>

類別 Class 的方法揭示了類別或介面的許多特性。 大多數特性來自class類別載入器傳遞給 Java 虛擬機器的檔案。 執行時類別載入環境會決定一些特性。

以下範例使用 Class 物件來列印物件的類別名稱:

<引用>

void printClassName(Object obj) {
                    System.out.println("The class of " + obj +
                                       " is " + obj.getClass().getName());
                }

</區塊引用>

也可以利用Class取得void命名類別或介面(或 )的物件。 例如:

<引用>System.out.println("The name of class Foo is: "+Foo.class.getName());</引用>

某些類別Class的方法會揭露 Java 原始碼中某類別或介面的宣告是否包含<><>在另一個宣告中。 其他方法則描述類別或介面如何被置於 <em>nest</em> 中。 「巢狀」>巢穴是同一執行時套件中一組類別與介面,允許彼此存取其 private 成員。 這些類別和介面被稱為 <em>nestmates</em>。 一位巢友擔任 <母巢>宿主</母馬>,並列舉屬於該巢的其他巢友;每個巢友依序記錄為巢主。 屬於巢狀的類別與介面(包括其主機)會在產生檔案時class決定,例如,Java 編譯器通常會將頂層類別記錄為巢狀的主機,其他成員則是包含在頂層類別宣告中的類別與介面。

某些類別Class的方法會揭露 Java 原始碼中某類別或介面的宣告是否包含<><>在另一個宣告中。 其他方法則描述類別或介面如何被置於 <em>nest</em> 中。 「巢狀」>巢穴是同一執行時套件中一組類別與介面,允許彼此存取其 private 成員。 這些類別和介面被稱為 <em>nestmates</em>。 一位巢友擔任 <母巢>宿主</母馬>,並列舉屬於該巢的其他巢友;每個巢友依序記錄為巢主。 屬於巢狀的類別與介面(包括其主機)會在產生檔案時class決定,例如,Java 編譯器通常會將頂層類別記錄為巢狀的主機,其他成員則是包含在頂層類別宣告中的類別與介面。

1.0 版本新增。

Java 文件 java.lang.Class

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

欄位

名稱 Description
CharSequence

一個 的 java.lang.CharSequenceJNI 類別參考。

Object

一個 的 java.lang.ObjectJNI 類別參考。

String

一個 的 java.lang.StringJNI 類別參考。

屬性

名稱 Description
CanonicalName

回傳由 <cite>定義的底層類別的典範名稱。The Java Language Specification/cite<>。

Class

回傳此 Object的執行時類別。

(繼承來源 Object)
ClassLoader

回傳該類別的載入器。

ComponentType

回傳代表陣列元件類型的 。Class

DeclaringClass

如果該 Class 物件所代表的類別或介面是另一個類別的成員,則會回傳 Class 代表該類別的物件。

EnclosingClass

回傳底層類別的緊接包含類別。

EnclosingConstructor

如果這個 Class 物件代表建構子內的本地或匿名類別,則會回傳 java.lang.reflect.Constructor Constructor 一個代表底層類別緊接其內的建構子的物件。

EnclosingMethod

若此 Class 物件代表方法中的本地或匿名類別,則回傳 java.lang.reflect.Method Method 一個代表底層類別緊鄰方法的物件。

GenericSuperclass

回傳 Type 代表該 Class 物件所代表實體(類別、介面、原始型態或空)的直接超類別。

Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsAnnotation

若此 Class 物件代表註解介面,則回傳為真。

IsAnonymousClass

當且僅當底層類別是匿名類別時,回傳true

IsArray

判斷此 Class 物件是否代表陣列類別。

IsEnum

當且僅當此類別在原始碼中被宣告為列舉時,才會回傳為真。

IsInterface

判斷此 Class 物件是否代表介面類型。

IsLocalClass

當且僅當底層類別是本地類別時,回傳 true

IsMemberClass

當且僅當底層類別是成員類別時,會回傳 true

IsPrimitive

判斷指定 Class 物件是否代表原始型態。

IsRecord

當且僅當該類別為記錄類別時,會回傳 true

IsSealed

當且僅當此true物件代表封閉類別或介面時,會回傳Class

IsSynthetic

{

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
JniPeerMembers

取得用於調用此 Java 節點成員的 JNI 元資料。

Modifiers

回傳此類別或介面的 Java 語言修飾符,以整數編碼。

Name

回傳此 Class 物件所代表的實體名稱(類別、介面、陣列類別、原始型態或空)。

NestHost

回傳該物件所代表 Class 的類別或介面所屬巢穴的巢狀宿主。

Package

他得到了這門課的包裝。

PackageName

回傳完全限定的套件名稱。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ProtectionDomain

本類別的退貨 ProtectionDomain

SimpleName

回傳原始碼中所給的底層類別的簡單名稱。

Superclass

回傳 Class 代表該實體(類別、介面、原始型態或空 Class)的直接超類別。

ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

(繼承來源 Object)
ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

(繼承來源 Object)
TypeName

回傳一個資訊串,表示這個類別或介面的名稱。

方法

名稱 Description
ArrayType()

回傳 Class 一個由此類別描述的元件類型陣列類型。

AsSubclass(Class)

將此 Class 物件鑄造為該類別物件所代表類別的子類別。

Cast(Object)

將物件投射到該 Class 物件所代表的類別或介面。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
DescriptorString()

回傳由此void物件所代表的實體(類別、介面、陣列類別、原始型別或Class)的描述符字串。

DesiredAssertionStatus()

回傳若在呼叫此方法時初始化該類別時,該類別會被分配的斷言狀態。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
Equals(Object)

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
ForName(String, Boolean, ClassLoader)

回傳 Class 與該類別或介面相關的物件,並使用指定的類別載入器。

ForName(String)

回傳 Class 與該類別或介面相關的物件,並帶有給定字串名稱。

FromType(Type)

回傳指定受管理型別的 Java Class 表示。

GetAnnotation(Class)

回傳該類別對請求型別的註解,或 null 若不存在該類型。

GetAnnotations()

回傳此類別中所有的註解。

GetAnnotationsByType(Class)

回傳與此類別相關的請求型別註解。

GetClasses()

回傳一個陣列,包含 Class 代表所有公開類別與介面的物件,這些類別是該類別 Class 的成員。

GetConstructor(Class[])

回傳一個 Constructor 物件,反映該 Class 物件所代表類別的指定公共建構子。

GetConstructors()

回傳一個陣列,包含 Constructor 反映該物件所代表 Class 類別所有公開建構子的物件。

GetDeclaredAnnotation(Class)

回傳該類別直接宣告的註解,或若不存在該類型 null

GetDeclaredAnnotations()

回傳所有直接在此類別上宣告的註解。

GetDeclaredAnnotationsByType(Class)

回傳直接在此類別上宣告的請求註解。

GetDeclaredClasses()

回傳一個物件陣列 Class ,反映所有宣告為該類別 Class 成員的類別與介面。

GetDeclaredConstructor(Class[])

回傳 Constructor 一個物件,反映該物件所代表 Class 類別或介面的指定建構子。

GetDeclaredConstructors()

回傳一個物件陣列 Constructor ,反映該類別 Class 所宣告的所有建構子。

GetDeclaredField(String)

回傳 Field 一個反映該 Class 物件所代表類別或介面指定宣告欄位的物件。

GetDeclaredFields()

回傳一個物件陣列 Field ,反映該物件所代表 Class 的類別或介面所宣告的所有欄位。

GetDeclaredMethod(String, Class[])

回傳 Method 一個物件,反映該物件所代表 Class 類別或介面中指定宣告的方法。

GetDeclaredMethods()

回傳一個陣列,包含 Method 反映該 Class 物件所代表類別或介面所有宣告方法的物件,包括公用、受保護、預設(套件)存取權及私有方法,但不包含繼承的方法。

GetEnumConstants()

回傳該 Enum 類別的元素,若該 Class 物件不代表 enum 類別,則回傳 null。

GetField(String)

回傳 Field 一個物件,反映該類別或介面 Class 指定公用成員欄位的物件。

GetFields()

回傳一個陣列,包含 Field 反映該 Class 類別或介面所有可存取公共欄位的物件。

GetGenericInterfaces()

回傳 Type代表由該 Class 物件所代表的類別或介面直接實作的介面的 s。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetInterfaces()

回傳由該 Class 物件所代表的類別或介面直接實作的介面。

GetMethod(String, Class[])

回傳 Method 一個物件,反映該物件所代表 Class 類別或介面中指定的公開成員方法。

GetMethods()

回傳一個陣列,包含 Method 反映該 Class 物件所代表類別或介面所有公開方法的物件,包括該類別或介面宣告的,以及繼承自超類別和超介面的方法。

GetNestMembers()

回傳一個陣列,包含 Class 代表該物件 Class 所屬的 nest 中所有類別與介面的物件。

GetPermittedSubclasses()

回傳一個陣列,包含 Class 代表允許擴充或實作該類別或子類別的物件(若封閉該類別或介面)。

GetRecordComponents()

回傳一個物件陣列 RecordComponent ,代表該記錄類別的所有記錄元件,或 null 如果該類別不是記錄類別,則回傳。

GetResource(String)

找到一個有名字的資源。

GetResourceAsStream(String)

找到一個有名字的資源。

GetSigners()

這班的簽名者。

GetTypeParameters()

回傳一個物件陣列 TypeVariable ,代表由該 GenericDeclaration 物件所代表的通用宣告所宣告的型別變數,並依宣告順序呈現。

InvokeComponentType()

如果描述的是陣列類型,則回傳元件 Class類型,否則 null

IsAnnotationPresent(Class)

判斷此類別中是否存在所請求類型的註解。

IsAssignableFrom(Class)

判斷此 Class 物件所代表的類別或介面是否與指定 Class 參數所代表的類別或介面相同,或是其的超類別或超介面。

IsInstance(Object)

判斷指定 Object 值是否與該 Class物件的賦值相容。

IsNestmateOf(Class)

判斷給定 Class 的物件是否是該物件所代表 Class 類別或介面的巢狀物件。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
NewInstance()

建立由此 Class 物件所代表類別的新實例。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToGenericString()

回傳一個描述此事的 Class字串,包含修飾符和型別參數的資訊。

ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

ITypeDescriptor+IOfField.ComponentType()

回傳此欄位類型的元件類型描述符。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

類別Class的實例代表執行中的 Java 應用程式中的類別與介面。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於