- 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
オブジェクトとして表されます。Class
には、publicコンストラクタはありません。 かわりに、クラス・ローダーがdefineClass
メソッドのいずれかを起動してdefineClass
ファイルのバイトを渡すと、Class
オブジェクトがJava Virtual Machineによって自動的に作成されます。クラス
Class
のメソッドでは、クラスまたはインタフェースの多くの特性が公開されます。 ほとんどの特性は、クラス・ローダーがJava Virtual Machineに渡されたclass
ファイルから導出されます。 いくつかの特性は、getModule()
によって返されたモジュールなど、実行時のクラス・ロード環境によって決まります。クラス
Class
の一部のメソッドでは、Javaソース・コードのクラスまたはインタフェースの宣言が別の宣言で「囲み」だったかどうかが公開されます。 他のメソッドは、クラスまたはインタフェースが「ネスト」にある状況を表します。 「ネスト」は、同じランタイム・パッケージ内のクラスとインタフェースのセットで、private
メンバーへの相互のアクセスを可能にします。 クラスおよびインタフェースは、nestmatesと呼ばれます。 1つのネストしたウィンドウは「ホストのネスト」の役割を果たし、他のネストしたコンテンツを列挙します。ネストしたホストとして各ネストします。 ネストしたクラス(ホストを含む)に属するクラスとインタフェースは、class
ファイルが生成されたときに判別されます。たとえば、Javaコンパイラでは通常、最上位クラスがネストのホストとして記録されます。ここでは、宣言が最上位クラス宣言で囲まれたクラスとインタフェースが他のメンバーになります。以下の例では、
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());
- 導入されたバージョン:
- 1.0
- 関連項目:
ClassLoader.defineClass(byte[], int, int)
, 直列化された形式
-
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 <U> Class<? extends U>
asSubclass(Class<U> clazz)
指定されたクラス・オブジェクトによって表されるクラスのサブクラスを表すためにこのClass
オブジェクトをキャストします。T
cast(Object obj)
このClass
オブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。boolean
desiredAssertionStatus()
このメソッドの呼出し時にこのクラスを初期化する場合、クラスに割り当てられるアサーション・ステータスを返します。static Class<?>
forName(Module module, String name)
与えられたモジュール内の与えられた「バイナリ名」を持つClass
を返します。static Class<?>
forName(String className)
指定された文字列名を持つクラスまたはインタフェースに関連付けられた、Class
オブジェクトを返します。static Class<?>
forName(String name, boolean initialize, ClassLoader loader)
指定されたクラス・ローダーを使って、指定された文字列名を持つクラスまたはインタフェースに関連付けられたClass
オブジェクトを返します。AnnotatedType[]
getAnnotatedInterfaces()
Class
オブジェクトによって表されるエンティティのスーパーインタフェースを指定する型の使用を表すAnnotatedType
オブジェクトの配列を返します。AnnotatedType
getAnnotatedSuperclass()
Class
オブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedType
オブジェクトを返します。<A extends Annotation>
AgetAnnotation(Class<A> annotationClass)
存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。Annotation[]
getAnnotations()
この要素に存在する注釈を返します。<A extends Annotation>
A[]getAnnotationsByType(Class<A> annotationClass)
この要素に関連付けられている注釈を返します。String
getCanonicalName()
『Java言語仕様』の定義に従って、基本となるクラスの正規名を返します。Class<?>[]
getClasses()
このClass
オブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClass
オブジェクトを格納している配列を返します。ClassLoader
getClassLoader()
クラスのクラス・ローダーを返します。Class<?>
getComponentType()
配列のコンポーネント型を表すClass
を返します。Constructor<T>
getConstructor(Class<?>... parameterTypes)
このClass
オブジェクトが表すクラスの指定されたpublicコンストラクタをリフレクトするConstructor
オブジェクトを返します。Constructor<?>[]
getConstructors()
このClass
オブジェクトが表すクラスのすべてのpublicコンストラクタをリフレクトするConstructor
オブジェクトを格納している配列を返します。<A extends Annotation>
AgetDeclaredAnnotation(Class<A> annotationClass)
直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。Annotation[]
getDeclaredAnnotations()
この要素に直接存在する注釈を返します。<A extends Annotation>
A[]getDeclaredAnnotationsByType(Class<A> annotationClass)
直接存在するか間接的に存在する場合は、この要素の指定された型の注釈を返します。Class<?>[]
getDeclaredClasses()
このClass
オブジェクトが表すクラスのメンバーとして宣言されたすべてのクラスおよびインタフェースをリフレクトするClass
オブジェクトの配列を返します。Constructor<T>
getDeclaredConstructor(Class<?>... parameterTypes)
このClass
オブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトするConstructor
オブジェクトを返します。Constructor<?>[]
getDeclaredConstructors()
このClass
オブジェクトが表すクラスによって宣言されたすべてのコンストラクタをリフレクトするConstructor
オブジェクトの配列を返します。Field
getDeclaredField(String name)
このClass
オブジェクトが表すクラスまたはインタフェースの、指定された宣言されたフィールドをリフレクトするField
オブジェクトを返します。Field[]
getDeclaredFields()
このClass
オブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするField
オブジェクトの配列を返します。Method
getDeclaredMethod(String name, Class<?>... parameterTypes)
このClass
オブジェクトが表すクラスまたはインタフェースの、指定された宣言されたメソッドをリフレクトするMethod
オブジェクトを返します。Method[]
getDeclaredMethods()
このClass
オブジェクトによって表されるクラスまたはインタフェースのすべての宣言されたメソッドをリフレクトするMethod
オブジェクトが格納された配列を返します。これには、public、protected、デフォルト(package)アクセスおよびprivateメソッドが含まれますが、継承されたメソッドは除外されます。Class<?>
getDeclaringClass()
このClass
オブジェクトが表すクラスまたはインタフェースが別のクラスのメンバーの場合は、それが宣言されたクラスを表すClass
オブジェクトを返します。Class<?>
getEnclosingClass()
基本となるクラスを直接囲むクラスを返します。Constructor<?>
getEnclosingConstructor()
このClass
オブジェクトが、コンストラクタ内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表すConstructor
オブジェクトを返します。Method
getEnclosingMethod()
このClass
オブジェクトが、メソッド内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表すMethod
オブジェクトを返します。T[]
getEnumConstants()
このenumクラスの要素を返すか、このClassオブジェクトがenum型を表さない場合はnullを返します。Field
getField(String name)
このClass
オブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・フィールドをリフレクトするField
オブジェクトを返します。Field[]
getFields()
このClass
オブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能なpublicフィールドをリフレクトする、Field
オブジェクトを保持している配列を返します。Type[]
getGenericInterfaces()
このオブジェクトによって表されるインタフェースまたはクラスによって直接実装されるインタフェースを表すType
を返します。Type
getGenericSuperclass()
このClass
で表されるエンティティ(クラス、インタフェース、プリミティブ型、またはvoid)の直接のスーパー・クラスを表すType
を返します。Class<?>[]
getInterfaces()
このオブジェクトが表すクラスまたはインタフェースによって直接実装されているインタフェースを返します。Method
getMethod(String name, Class<?>... parameterTypes)
このClass
オブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・メソッドをリフレクトするMethod
オブジェクトを返します。Method[]
getMethods()
このClass
オブジェクトによって表されるクラスまたはインタフェースのすべてのpublicメソッドをリフレクトするMethod
オブジェクトを格納している配列を返します。これには、クラスまたはインタフェースで宣言されたもの、およびスーパー・クラスやスーパー・インタフェースから継承されたものも含まれます。int
getModifiers()
このクラスまたはインタフェースのJava言語修飾子を整数型に符号化して返します。Module
getModule()
このクラスまたはインタフェースがメンバーであるモジュールを返します。String
getName()
このClass
オブジェクトが表すエンティティ(クラス、インタフェース、配列クラス、プリミティブ型、またはvoid)の名前を、String
として返します。Class<?>
getNestHost()
このClass
オブジェクトが表すクラスまたはインタフェースが属する「ネスト」のネストされたホストを返します。Class<?>[]
getNestMembers()
このClass
オブジェクトが属する、ネストされたクラスまたはインタフェースのメンバーであるすべてのクラスおよびインタフェースを表すClass
オブジェクトを含む配列を返します。Package
getPackage()
このクラスのパッケージを取得します。String
getPackageName()
完全修飾パッケージ名を返します。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()
GenericDeclaration
オブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariable
オブジェクトの配列を宣言順に返します。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()
このクラスがソース・コードでenumとして宣言された場合だけtrueを返します。boolean
isInstance(Object obj)
指定されたObject
が、このClass
が表すオブジェクトと代入互換の関係にあるかどうかを判定します。boolean
isInterface()
指定されたClass
オブジェクトがインタフェース型を表すかどうかを判定します。boolean
isLocalClass()
基本となるクラスがローカル・クラスである場合だけtrue
を返します。boolean
isMemberClass()
基本となるクラスがメンバー・クラスである場合だけtrue
を返します。boolean
isNestmateOf(Class<?> c)
指定されたClass
が、このClass
オブジェクトによって表されるクラスまたはインタフェースをネストしたものであるかどうかを判定します。boolean
isPrimitive()
指定されたClass
オブジェクトがプリミティブ型を表すかどうかを判定します。boolean
isSynthetic()
このクラスが合成クラスである場合はtrue
を返し、そうでない場合はfalse
を返します。T
newInstance()
非推奨。このメソッドは、チェック例外を含むnullaryコンストラクタによってスローされた例外をすべて伝播します。String
toGenericString()
修飾子と型パラメータに関する情報を含む、このClass
を記述する文字列を返します。String
toString()
オブジェクトを文字列に変換します。
-
-
-
メソッドの詳細
-
toString
public String toString()
オブジェクトを文字列に変換します。 その文字列は、「class」または「interface」などの文字列、空白、getName
が返す形式の完全指定クラス名という順序で表現されます。 このClass
オブジェクトがプリミティブ型を表す場合、このメソッドはプリミティブ型の名前を返します。 このClass
オブジェクトがvoidを表す場合は、「void」を返します。 このClass
オブジェクトが配列型を表す場合、このメソッドは"class"とそれに続くgetName
を返します。
-
toGenericString
public String toGenericString()
修飾子と型パラメータに関する情報を含む、このClass
を記述する文字列を返します。 この文字列の書式は、存在する場合は型修飾子、型の種類(必要に応じて、プリミティブ型を表す空の文字列およびclass
、enum
、interface
、または@
interface
)、型の名前、山カッコで囲まれたカンマ区切りの型の型パラメータのリストが順番に続きます。 修飾子同士、およびいずれかの修飾子と型の種類との区切りには空白が1つ使用されます。 修飾子は正規の順序で返されます。 型パラメータがない場合、型パラメータのリストは省略されます。 配列型の場合、文字列は型名で始まり、型のパラメータがあればカンマで区切られた角括弧で区切られたリストが続き、配列のディメンションごとに1組の[]
文字のシーケンスが続きます。型の実行時表現に関する情報が生成されるため、元のソース・コードにない修飾子または元のソース・コードで不正な修飾子が存在する可能性があることに注意してください。
- 戻り値:
- 修飾子と型パラメータに関する情報を含む、この
Class
を記述する文字列 - 導入されたバージョン:
- 1.8
-
forName
public static Class<?> forName(String className) throws ClassNotFoundException
指定された文字列名を持つクラスまたはインタフェースに関連付けられた、Class
オブジェクトを返します。 このメソッドを呼び出すことは、次の記述に相当します。Class.forName(className, true, currentLoader)
currentLoader
は、現在のクラスを定義するクラス・ローダーを示します。たとえば以下の記述は、
java.lang.Thread
という名前のクラスの実行時におけるClass
記述子を返します。Class t = Class.forName("java.lang.Thread")
forName("X")
の呼出しによって、X
というクラスが初期化されます。- パラメータ:
className
- 要求するクラスの完全指定の名前。- 戻り値:
- 指定された名前を持つクラスの
Class
オブジェクト。 - 例外:
LinkageError
- リンケージに失敗した場合ExceptionInInitializerError
- このメソッドによる初期化に失敗した場合ClassNotFoundException
- クラスが見つからなかった場合
-
forName
public static Class<?> forName(String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException
指定されたクラス・ローダーを使って、指定された文字列名を持つクラスまたはインタフェースに関連付けられたClass
オブジェクトを返します。 クラスまたはインタフェースの完全指定名を(getName
が返す形式と同じ形式で)指定すると、このメソッドはクラスまたはインタフェースを見つけ、ロードして、リンクしようとします。 クラスまたはインタフェースをロードする際には、指定されたクラス・ローダーが使用されます。loader
パラメータがnullの場合、クラスはブートストラップ・クラス・ローダーを使ってロードされます。 クラスが初期化されるのは、initialize
パラメータがtrue
で、その初期化が以前に行われていない場合だけです。name
がプリミティブ型またはvoidを示す場合、無名パッケージ内でname
という名前のユーザー定義のクラスを見つけようとします。 このため、このメソッドを使って、プリミティブ型またはvoidを表すClass
オブジェクトを取得することはできません。name
が配列クラスを示す場合、配列クラスのコンポーネント型はロードされますが、初期化されません。たとえば、インスタンス・メソッドでは、
Class.forName("Foo")
Class.forName("Foo", true, this.getClass().getClassLoader())
- パラメータ:
name
- 要求するクラスの完全指定の名前initialize
-true
の場合、そのクラスが初期化される。 『Java言語仕様』のセクション12.4を参照してください。loader
- クラスのロード元である必要があるクラス・ローダー- 戻り値:
- 要求するクラスを表すクラス・オブジェクト
- 例外:
LinkageError
- リンケージに失敗した場合ExceptionInInitializerError
- このメソッドによる初期化に失敗した場合ClassNotFoundException
- 指定されたクラス・ローダーによってクラスが見つからなかった場合SecurityException
- セキュリティ・マネージャが存在し、loader
がnull
で、呼び出し側クラス・ローダーがnull
ではなく、呼び出し元にRuntimePermission
("getClassLoader")
がない場合- 導入されたバージョン:
- 1.2
- 関連項目:
forName(String)
,ClassLoader
-
forName
public static Class<?> forName(Module module, String name)
与えられたモジュール内の与えられた「バイナリ名」を持つClass
を返します。このメソッドは、クラスまたはインタフェースの検索、ロード、リンクを試みます。 クラス初期化子は実行されません。 クラスが見つからない場合、このメソッドは
null
を返します。指定されたモジュールのクラス・ローダーが他のモジュールを定義し、指定された名前が別のモジュールで定義されたクラスである場合、このメソッドはクラスがロードされた後に
null
を返します。このメソッドは、リクエストされたクラスが呼び出し元からアクセス可能かどうかをチェックしません。
- APIのノート:
- このメソッドは、
forName(String, boolean, ClassLoader)
メソッドのように、ClassNotFoundException
をスローするのではなく、失敗した場合にnull
を返します。 セキュリティ・チェックは、呼び出し側が別のモジュール内のクラスをロードする場合、スタック・ベースの許可チェックです。 - パラメータ:
module
- モジュールname
- クラスのバイナリ名- 戻り値:
Class
与えられたモジュールで定義されている指定された名前のオブジェクト。null
が見つからない場合。- 例外:
NullPointerException
- 指定されたモジュールまたは名前がnull
LinkageError
- リンケージに失敗した場合SecurityException
-- 呼び出し元が指定されたモジュールではなく、
RuntimePermission("getClassLoader")
パーミッションが拒否された場合。または - モジュール・コンテンツへのアクセスは拒否されます。 たとえば、クラス・ローダーがモジュール内のクラス・ファイルのバイトを読み取るために
ModuleReader.open(String)
を呼び出すと、パーミッション・チェックが実行されます。
- 呼び出し元が指定されたモジュールではなく、
- 導入されたバージョン:
- 9
-
newInstance
@Deprecated(since="9") public T newInstance() throws InstantiationException, IllegalAccessException
非推奨。このメソッドは、チェック例外を含むnullaryコンストラクタによってスローされた例外をすべて伝播します。 このメソッドを使用することで、その他の場合にはコンパイラによって実行されるコンパイル時の例外確認を効果的にバイパスできます。Constructor.newInstance
メソッドはこの問題を回避するため、コンストラクタからスローされる任意の例外を、(チェックされる)InvocationTargetException
内にラップします。呼び出し
は、次のもので置き換えることができますclazz.newInstance()
後者の呼び出しシーケンスは、追加の例外型clazz.getDeclaredConstructor().newInstance()
InvocationTargetException
とNoSuchMethodException
をスローすることができると推測されます。 これらの例外タイプはどちらもReflectiveOperationException
のサブクラスです。このClass
オブジェクトが表すクラスの新しいインスタンスを作成します。new
式に空の引数リストを指定した場合と同じように、クラスのインスタンスが生成されます。 クラスは、初期化されていなければ初期化されます。- 戻り値:
- このオブジェクトが表す、クラスの新しく割り当てられたインスタンス
- 例外:
IllegalAccessException
- クラスまたはその引数なしのコンストラクタにアクセスできない場合。InstantiationException
- このClass
が抽象クラス、インタフェース、配列クラス、プリミティブ型、またはvoidを表す場合、クラスが引数なしのコンストラクタを保持しない場合、あるいはインスタンスの生成がほかの理由で失敗した場合。ExceptionInInitializerError
- このメソッドによる初期化に失敗した場合。SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合
-
isInstance
public boolean isInstance(Object obj)
指定されたObject
が、このClass
が表すオブジェクトと代入互換の関係にあるかどうかを判定します。 このメソッドは、Java言語のinstanceof
演算子と動的に等価です。 このメソッドは、指定されたObject
引数がnull以外で、ClassCastException.
を発生させずにこのClass
オブジェクトによって表される参照タイプにキャストできる場合、true
を返します。 それ以外の場合はfalse
を戻します。特に、この
Class
オブジェクトが宣言クラスを表すときには、このメソッドは、指定されたObject
引数が表現クラス(またはそのサブクラス)のインスタンスの場合にtrue
を、そうでない場合にfalse
を返します。 このClass
オブジェクトが配列クラスを表すときには、恒等変換または拡張参照変換を用いて指定されたObject
引数を配列クラスのオブジェクトに変換できる場合にtrue
を、そうでない場合にfalse
を返します。 このClass
オブジェクトがインタフェースを表すときには、指定されたObject
引数のクラスまたはスーパー・クラスがこのインタフェースを実装する場合にtrue
を、そうでない場合にfalse
を返します。 このClass
オブジェクトがプリミティブ型を表す場合、このメソッドはfalse
を返します。- パラメータ:
obj
- チェック対象のオブジェクト- 戻り値:
obj
がこのクラスのインスタンスの場合はtrue- 導入されたバージョン:
- 1.1
-
isAssignableFrom
public boolean isAssignableFrom(Class<?> cls)
このClass
オブジェクトが表すクラスまたはインタフェースが、指定されたClass
パラメータが表すクラスまたはインタフェースと等しいかどうか、あるいはそのスーパー・クラスあるいはスーパー・インタフェースであるかどうかを判定します。 どちらかに当てはまる場合はtrue
を、そうでない場合はfalse
を返します。 このClass
オブジェクトがプリミティブ型を表すときには、指定されたClass
パラメータとこのClass
オブジェクトが一致する場合にtrue
を、そうでない場合にfalse
を返します。特にこのメソッドは、指定された
Class
パラメータが表現する型を、恒等変換または拡張参照変換を使って、このClass
オブジェクトが表す型に変換できるかどうかを調べます。 詳細は、『Java言語仕様』のセクション5.1.1と5.1.4を参照してください。- パラメータ:
cls
- チェック対象のClass
オブジェクト- 戻り値:
cls
型のオブジェクトがこのクラスに割り当てられるかどうかを示すboolean
値- 例外:
NullPointerException
- 指定されたClassパラメータがnullの場合。- 導入されたバージョン:
- 1.1
-
isInterface
public boolean isInterface()
指定されたClass
オブジェクトがインタフェース型を表すかどうかを判定します。- 戻り値:
- このオブジェクトがインタフェースを表す場合は
true
、そうでない場合はfalse
。
-
isArray
public boolean isArray()
このClass
オブジェクトが配列クラスを表すかどうかを判定します。- 戻り値:
- このオブジェクトが配列クラスを表す場合は
true
、そうでない場合はfalse
。 - 導入されたバージョン:
- 1.1
-
isPrimitive
public boolean isPrimitive()
指定されたClass
オブジェクトがプリミティブ型を表すかどうかを判定します。8つのプリミティブ型とvoidを表す、9つの定義済
Class
オブジェクトがあります。 これらはJava仮想マシンが作成し、該当するプリミティブ型と同じ名前を持ちます。つまり、boolean
、byte
、char
、short
、int
、long
、float
、およびdouble
です。これらのオブジェクトには、public static final変数を使う方法によってのみアクセスできます。また、このメソッドが
true
を返すのは、これらの9つのClass
オブジェクトに限定されます。- 戻り値:
- このクラスがプリミティブ型を表す場合に限りtrue
- 導入されたバージョン:
- 1.1
- 関連項目:
Boolean.TYPE
,Character.TYPE
,Byte.TYPE
,Short.TYPE
,Integer.TYPE
,Long.TYPE
,Float.TYPE
,Double.TYPE
,Void.TYPE
-
isAnnotation
public boolean isAnnotation()
Class
オブジェクトが注釈型を表す場合はtrueを返します。 すべての注釈型はインタフェースでもあるので、このメソッドがtrueを返すと、isInterface()
もtrueを返します。- 戻り値:
- このクラス・オブジェクトが注釈型を表す場合は
true
、それ以外の場合はfalse
- 導入されたバージョン:
- 1.5
-
isSynthetic
public boolean isSynthetic()
このクラスが合成クラスである場合はtrue
を返し、そうでない場合はfalse
を返します。- 戻り値:
- このクラスが『Java言語仕様』で定義されている合成クラスである場合に限り、
true
。 - 導入されたバージョン:
- 1.5
- Java™言語仕様を参照します:
- 13.1 バイナリの形式
-
getName
public String getName()
このClass
オブジェクトが表すエンティティ(クラス、インタフェース、配列クラス、プリミティブ型、またはvoid)の名前を、String
として返します。『Java™言語仕様』で規定されているように、このクラス・オブジェクトが配列型ではない参照型を表す場合は、クラスのバイナリ名が返されます。
このクラス・オブジェクトがプリミティブ型またはvoidを表す場合、返される名前はプリミティブ型またはvoidに対応するJava言語キーワードと等価な
String
です。このクラス・オブジェクトが配列のクラスを表す場合、名前の内部形式は、配列の入れ子の深さを表す1つ以上の
[
文字、要素のタイプの名前という順序で構成されます。 要素のタイプの名前のエンコーディングは、次のとおりです。要素のタイプ エンコーディング boolean型 Z byte B char C classまたはinterface Lclassname; double D float F int I long J short S クラス名またはインタフェース名のclassnameは、上記の例のようにクラスのバイナリ名で指定されます。
例
String.class.getName() returns "java.lang.String" byte.class.getName() returns "byte" (new Object[3]).getClass().getName() returns "[Ljava.lang.Object;" (new int[3][4][5][6][7][8][9]).getClass().getName() returns "[[[[[[[I"
- 戻り値:
- このオブジェクトが表すクラスまたはインタフェースの名前。
-
getClassLoader
public ClassLoader getClassLoader()
クラスのクラス・ローダーを返します。 実装によっては、nullを使ってブートストラップ・クラス・ローダーを表すこともできます。 このメソッドは、このクラスがブートストラップ・クラス・ローダーでロードされた場合に、そのような実装でnullを返します。このオブジェクトがプリミティブ型またはvoidを表す場合は、nullが返されます。
- 戻り値:
- このオブジェクトが表すクラスまたはインタフェースをロードしたクラス・ローダー
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、呼び出し側クラス・ローダーがnull
でなく、クラス・ローダーがリクエストされたクラスのクラス・ローダーと同じでもなく、祖先でもなく、呼び出し元にRuntimePermission
("getClassLoader")
がない場合- 関連項目:
ClassLoader
,SecurityManager.checkPermission(java.security.Permission)
,RuntimePermission
-
getModule
public Module getModule()
このクラスまたはインタフェースがメンバーであるモジュールを返します。 このクラスが配列型を表す場合、このメソッドは要素型のModule
を返します。 このクラスがプリミティブ型またはvoidを表す場合は、java.base
モジュールのModule
オブジェクトが返されます。 このクラスが名前のないモジュールにある場合、このクラスのクラス・ローダーの「名前なし」Module
が返されます。- 戻り値:
- このクラスまたはインタフェースがメンバーであるモジュール
- 導入されたバージョン:
- 9
-
getTypeParameters
public TypeVariable<Class<T>>[] getTypeParameters()
GenericDeclaration
オブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariable
オブジェクトの配列を宣言順に返します。 基になるジェネリック宣言で型変数が宣言されていない場合は、長さ0の配列が返されます。- 定義:
getTypeParameters
、インタフェースGenericDeclaration
- 戻り値:
- このジェネリック宣言で宣言された型変数を表す
TypeVariable
オブジェクトの配列 - 例外:
GenericSignatureFormatError
- このジェネリック宣言のジェネリック・シグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合- 導入されたバージョン:
- 1.5
-
getSuperclass
public Class<? super T> getSuperclass()
このClass
で表されるエンティティ(クラス、インタフェース、プリミティブ型またはvoid)の直接スーパークラスを表すClass
を返します。 このClass
が、Object
クラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。 このオブジェクトが配列クラスを表す場合は、Object
クラスを表すClass
オブジェクトが返されます。- 戻り値:
- このオブジェクトが表すクラスの直接スーパークラス
-
getGenericSuperclass
public Type getGenericSuperclass()
このClass
で表されるエンティティ(クラス、インタフェース、プリミティブ型、またはvoid)の直接のスーパー・クラスを表すType
を返します。スーパー・クラスがパラメータ化された型の場合、返される
Type
オブジェクトは、ソース・コードで使用される実際の型パラメータを反映しなければいけません。 スーパー・クラスを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。 パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedType
の宣言を参照してください。 このClass
が、Object
クラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。 このオブジェクトが配列クラスを表す場合は、Object
クラスを表すClass
オブジェクトが返されます。- 戻り値:
- このオブジェクトが表すクラスの直接スーパークラス
- 例外:
GenericSignatureFormatError
- ジェネリック・クラスのシグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合TypeNotPresentException
- ジェネリック・スーパークラスが、存在しない型宣言を参照する場合MalformedParameterizedTypeException
- ジェネリック・スーパークラスが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合- 導入されたバージョン:
- 1.5
-
getPackage
public Package getPackage()
このクラスのパッケージを取得します。このクラスがプリミティブ型またはvoidの配列型を表す場合、このメソッドは
null
を返します。- 戻り値:
- このクラスのパッケージ。
-
getPackageName
public String getPackageName()
完全修飾パッケージ名を返します。このクラスがトップレベルのクラスである場合、このメソッドはクラスが所属するパッケージの完全修飾名を返します。クラスが名前のないパッケージにある場合は空の文字列を返します。
このクラスがメンバー・クラスである場合、このメソッドは「囲みクラス」上で
getPackageName()
を呼び出すことに相当します。このクラスが「ローカル・クラス」または「匿名クラス」である場合、このメソッドは「囲みメソッド」または「包含コンストラクタ」の「宣言クラス」で「宣言クラス」を呼び出すことと同等です。
このクラスが配列型を表す場合、このメソッドは要素型のパッケージ名を返します。 このクラスがプリミティブ型またはvoidを表す場合は、パッケージ名"
java.lang
"が返されます。- 戻り値:
- 完全修飾パッケージ名
- 導入されたバージョン:
- 9
- Java™言語仕様を参照します:
- 6.7 完全修飾名
-
getInterfaces
public Class<?>[] getInterfaces()
このオブジェクトが表すクラスまたはインタフェースによって直接実装されているインタフェースを返します。このオブジェクトがクラスを表す場合、戻り値はクラスによって直接実装されたすべてのインタフェースを表すオブジェクトを含む配列です。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すクラスを宣言する
implements
節内のインタフェース名の順序に一致します。 たとえば、class Shimmer implements FloorWax, DessertTopping { ... }
s
の値がShimmer
のインスタンスであるとします。s.getClass().getInterfaces()[0]
FloorWax
インタフェースを表すClass
オブジェクトであり、s.getClass().getInterfaces()[1]
DessertTopping
インタフェースを表すClass
オブジェクトです。このオブジェクトがインタフェースを表す場合、そのインタフェースによって直接拡張されたすべてのインタフェースを表すオブジェクトが配列内に入ります。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すインタフェースを宣言する
extends
節内のインタフェース名の順序に一致します。このオブジェクトがインタフェースを実装しないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。
このオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドは長さが0の配列を返します。
この
Class
オブジェクトが配列型を表す場合、Cloneable
インタフェースとjava.io.Serializable
インタフェースはその順序で返されます。- 戻り値:
- このクラスによって直接実装されるインタフェースの配列
-
getGenericInterfaces
public Type[] getGenericInterfaces()
このオブジェクトによって表されるインタフェースまたはクラスによって直接実装されるインタフェースを表すType
を返します。スーパー・インタフェースがパラメータ化された型の場合、返される
Type
オブジェクトは、ソース・コードで使用される実際の型パラメータを反映しなければいけません。 スーパー・インタフェースを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。 パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedType
の宣言を参照してください。このオブジェクトがクラスを表す場合、戻り値はクラスによって直接実装されたすべてのインタフェースを表すオブジェクトを含む配列です。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すクラスを宣言する
implements
節内のインタフェース名の順序に一致します。このオブジェクトがインタフェースを表す場合、そのインタフェースによって直接拡張されたすべてのインタフェースを表すオブジェクトが配列内に入ります。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すインタフェースを宣言する
extends
節内のインタフェース名の順序に一致します。このオブジェクトがインタフェースを実装しないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。
このオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドは長さが0の配列を返します。
この
Class
オブジェクトが配列型を表す場合、Cloneable
インタフェースとjava.io.Serializable
インタフェースはその順序で返されます。- 戻り値:
- このクラスによって直接実装されるインタフェースの配列
- 例外:
GenericSignatureFormatError
- ジェネリック・クラスのシグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合TypeNotPresentException
- ジェネリック・スーパーインタフェースのどれかが、存在しない型宣言を参照する場合MalformedParameterizedTypeException
- ジェネリック・スーパーインタフェースのどれかが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合- 導入されたバージョン:
- 1.5
-
getComponentType
public Class<?> getComponentType()
配列のコンポーネント型を表すClass
を返します。 このクラスが配列クラスを表さない場合、このメソッドはnullを返します。- 戻り値:
- このクラスが配列の場合、このクラスのコンポーネント型を示す
Class
- 導入されたバージョン:
- 1.1
- 関連項目:
Array
-
getModifiers
public int getModifiers()
このクラスまたはインタフェースのJava言語修飾子を整数型に符号化して返します。 修飾子は、public
、protected
、private
、final
、static
、abstract
、およびinterface
用のJava仮想マシンの定数から構成されます。これらは、Modifier
クラスのメソッドを使ってデコードしなければいけません。基本となるクラスが配列クラスの場合、
public
、private
、およびprotected
の各修飾子はコンポーネント型の修飾子と同じです。 このClass
がプリミティブ型またはvoidの場合、public
の各修飾子は常にtrue
で、protected
およびprivate
修飾子は常にfalse
です。 このオブジェクトが配列クラス、プリミティブ型、またはvoidを表す場合、final
修飾子は常にtrue
で、そのインタフェース修飾子は常にfalse
です。 その他の修飾子の値は、この仕様では判定されません。修飾子の符号化は、『Java Virtual Machine仕様』の表4.1で定義しています。
- 戻り値:
- このクラスの修飾子を表す
int
- 導入されたバージョン:
- 1.1
- 関連項目:
Modifier
-
getSigners
public Object[] getSigners()
このクラスの署名者を取得します。- 戻り値:
- このクラスの署名者。署名者がない場合はnull。 特にこのメソッドは、このオブジェクトがプリミティブ型またはvoidを表す場合にはnullを返す。
- 導入されたバージョン:
- 1.1
-
getEnclosingMethod
public Method getEnclosingMethod() throws SecurityException
このClass
オブジェクトが、メソッド内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表すMethod
オブジェクトを返します。 それ以外の場合はnull
を返します。 特に、基本となるクラスが、型宣言、インスタンス初期化子、または静的初期化子により直接囲まれるローカル・クラスまたは匿名クラスである場合、このメソッドはnull
を返します。- 戻り値:
- クラスがローカル・クラスまたは匿名クラスの場合、基本となるクラスを直接囲むメソッド。そうでない場合は
null
。 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:- 呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しが囲むクラス内のメソッドへのアクセスを許可しない - 呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先と
s.checkPackageAccess()
の呼出しが囲むクラスのパッケージへのアクセスを許可しない
- 呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.5
-
getEnclosingConstructor
public Constructor<?> getEnclosingConstructor() throws SecurityException
このClass
オブジェクトが、コンストラクタ内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表すConstructor
オブジェクトを返します。 それ以外の場合はnull
を返します。 特に、基本となるクラスが、型宣言、インスタンス初期化子、または静的初期化子により直接囲まれるローカル・クラスまたは匿名クラスである場合、このメソッドはnull
を返します。- 戻り値:
- クラスがローカル・クラスまたは匿名クラスの場合、基本となるクラスを直接囲むコンストラクタ。そうでない場合は
null
。 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:- 呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しが囲むクラス内のコンストラクタへのアクセスを許可しない - 呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先と
s.checkPackageAccess()
の呼出しが囲むクラスのパッケージへのアクセスを許可しない
- 呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.5
-
getDeclaringClass
public Class<?> getDeclaringClass() throws SecurityException
このClass
オブジェクトが表すクラスまたはインタフェースが別のクラスのメンバーの場合は、それが宣言されたクラスを表すClass
オブジェクトを返します。 このクラスまたはインタフェースがほかのクラスのメンバーでない場合は、nullを返します。 このClass
オブジェクトが配列クラス、プリミティブ型、またはvoidを表す場合、このメソッドはnullを返します。- 戻り値:
- このクラスを宣言するクラス
- 例外:
SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、宣言しているクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しが宣言しているクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
- 1.1
-
getEnclosingClass
public Class<?> getEnclosingClass() throws SecurityException
基本となるクラスを直接囲むクラスを返します。 基本となるクラスがトップレベル・クラスである場合、null
を返します。- 戻り値:
- 基本となるクラスを直接囲むクラス
- 例外:
SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しが囲むクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
- 1.5
-
getSimpleName
public String getSimpleName()
ソース・コード内で指定されたとおり、基本となるクラスの単純名を返します。 基本となるクラスが匿名の場合、空の文字列を返します。配列の単純名は、「[]」が付加されたコンポーネント型の単純名です。 特に、コンポーネント型が匿名である配列の単純名は、「[]」です。
- 戻り値:
- 基本となるクラスの単純名
- 導入されたバージョン:
- 1.5
-
getTypeName
public String getTypeName()
この型の名前に関する情報提供文字列を返します。- 定義:
getTypeName
、インタフェースType
- 戻り値:
- この型の名前を表す情報文字列
- 導入されたバージョン:
- 1.8
-
getCanonicalName
public String getCanonicalName()
『Java言語仕様』の定義に従って、基本となるクラスの正規名を返します。 基本となるクラスが正規名を持たない場合(ローカル・クラスや匿名クラス、またはコンポーネント型が正規名を持たない配列の場合)、nullを返します。- 戻り値:
- 存在する場合は基本となるクラスの正規名。そうでない場合は
null
。 - 導入されたバージョン:
- 1.5
-
isAnonymousClass
public boolean isAnonymousClass()
基本となるクラスが匿名クラスである場合だけtrue
を返します。- 戻り値:
- このクラスが匿名クラスである場合だけ
true
。 - 導入されたバージョン:
- 1.5
-
isLocalClass
public boolean isLocalClass()
基本となるクラスがローカル・クラスである場合だけtrue
を返します。- 戻り値:
- このクラスがローカル・クラスである場合だけ
true
。 - 導入されたバージョン:
- 1.5
-
isMemberClass
public boolean isMemberClass()
基本となるクラスがメンバー・クラスである場合だけtrue
を返します。- 戻り値:
- このクラスがメンバー・クラスである場合だけ
true
。 - 導入されたバージョン:
- 1.5
-
getClasses
public Class<?>[] getClasses()
このClass
オブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClass
オブジェクトを格納している配列を返します。 スーパー・クラスから継承したpublicクラスおよびインタフェースのメンバー、ならびにクラスが宣言したpublicクラスとインタフェースのメンバーも含まれます。 このClass
オブジェクトがpublicメンバー・クラスやインタフェースを持たない場合、このメソッドは長さが0の配列を返します。 また、このClass
オブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合も、このメソッドは長さが0の配列を返します。- 戻り値:
- このクラスのpublicメンバーを表す
Class
オブジェクトの配列 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
- 1.1
-
getFields
public Field[] getFields() throws SecurityException
このClass
オブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能なpublicフィールドをリフレクトする、Field
オブジェクトを保持している配列を返します。この
Class
オブジェクトが、アクセス可能なpublicフィールドを持たないクラスまたはインタフェースを表す場合、このメソッドは長さ0の配列を返します。この
Class
オブジェクトがクラスを表す場合、このメソッドは、クラスおよびそのスーパークラスとスーパー・インタフェースのパブリック・フィールドを返します。この
Class
オブジェクトがインタフェースを表す場合、このメソッドはこのインタフェースとそのすべてのスーパー・インタフェースのフィールドを返します。この
Class
オブジェクトが配列型、プリミティブ型、またはvoidを表す場合、このメソッドは長さが0の配列を返します。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。
- 戻り値:
- publicフィールドを表す
Field
オブジェクトの配列 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
- 1.1
- Java™言語仕様を参照します:
- 8.2 クラスのメンバー、8.3 フィールド宣言
-
getMethods
public Method[] getMethods() throws SecurityException
このClass
オブジェクトによって表されるクラスまたはインタフェースのすべてのpublicメソッドをリフレクトするMethod
オブジェクトを格納している配列を返します。これには、クラスまたはインタフェースで宣言されたもの、およびスーパー・クラスやスーパー・インタフェースから継承されたものも含まれます。この
Class
オブジェクトが配列型を表す場合、返される配列にはObject
からの配列型によって継承された各publicメソッドのMethod
オブジェクトが含まれます。 それには、clone()
のMethod
オブジェクトは含まれません。この
Class
オブジェクトがインタフェースを表す場合、返される配列にはObject
からの暗黙的に宣言されたどのメソッドも含まれません。 そのため、このインタフェースやそのいずれかのスーパー・インタフェースで明示的に宣言されたメソッドが1つもない場合、返される配列の長さは0になります。 (クラスを表すClass
オブジェクトが常にObject
から継承されたpublicメソッドを持っていることに注意してください。)返される配列には、名前が"
<init>
"または"<clinit>
"のメソッドは含まれません。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。
一般に、結果は次の4ステップ・アルゴリズムのように計算されます。 Cをこの
Class
オブジェクトによって表されるクラスまたはインタフェースとします:- メソッドの組合は以下のもので構成される:
- Cは、
getDeclaredMethods()
によって返されるpublicインスタンスと静的メソッドを宣言し、パブリック・メソッドのみを含むようにフィルタリングしました。 - Cが
Object
以外のクラスである場合、このアルゴリズムをCのスーパークラスに再帰的に呼び出す結果を含めます。 - このアルゴリズムをCのすべての直接スーパー・インタフェースに再帰的に呼び出す結果を含めますが、インスタンス・メソッドのみを含みます。
- Cは、
- ステップ1のUnionは、同じシグネチャ(名前、パラメータ型)と戻り値の型を持つメソッドのサブセットに分割されます。
- そのような各サブセット内では、最も具体的なメソッドのみが選択されます。 メソッドMを、同じシグネチャと戻り値の型を持つメソッドのセットからのメソッドとします。 Mは、NがMよりも特異的であるように、同じ集合からそのようなメソッドN!= Mが存在しない場合に最も具体的です。 NはMよりも具体的です:
- Nはクラスによって宣言され、Mはインタフェースによって宣言されます。または
- NとMはどちらもクラスによって宣言されており、どちらもインタフェースで宣言されています。N宣言型は、宣言型(MとNの宣言型が同じ型の場合、MとNは同じメソッドです)と同じか、またはサブ型です。
- このアルゴリズムの結果は、ステップ3のすべての選択されたメソッドの和集合です。
- APIのノート:
- Java言語では、クラスが同じシグネチャで異なる戻り型を持つ複数のメソッドを宣言することを禁じますが、Java仮想マシンではそうではないため、クラス内に特定の名前とパラメータ型を持つメソッドが複数存在することがあります。 仮想マシンのこのような柔軟性を使用して、さまざまな言語機能を実装することができます。 たとえば、共変リターンは「ブリッジ・メソッド」で実装できます。ブリッジ・メソッドとオーバーライド・メソッドは同じシグネチャを持ちますが、戻り値の型は異なります。
- 戻り値:
- このクラスのpublicメソッドを表す
Method
オブジェクトの配列 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
- 1.1
- Java™言語仕様を参照します:
- 8.2 クラスのメンバー、8.4 メソッド宣言
- メソッドの組合は以下のもので構成される:
-
getConstructors
public Constructor<?>[] getConstructors() throws SecurityException
このClass
オブジェクトが表すクラスのすべてのpublicコンストラクタをリフレクトするConstructor
オブジェクトを格納している配列を返します。 クラスにpublicコンストラクタがない場合、クラスが配列クラスの場合、またはクラスがプリミティブ型またはvoidをリフレクトする場合には、長さが0の配列を返します。 このメソッドはConstructor<T>
オブジェクトの配列(このクラスからのコンストラクタの配列)を返しますが、このメソッドの戻り値の型はConstructor<?>[]
であり、予想されるConstructor<T>[]
ではないことに注意してください。 この情報の少ない戻り値の型は、このメソッドから返されたあとで必要になり、この配列はさまざまなクラスのConstructor
オブジェクトを保持するよう変更されることがあります。これは、Constructor<T>[]
の型保証に違反します。- 戻り値:
- このクラスのpublicコンストラクタを表す
Constructor
オブジェクトの配列 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
- 1.1
-
getField
public Field getField(String name) throws NoSuchFieldException, SecurityException
このClass
オブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・フィールドをリフレクトするField
オブジェクトを返します。name
パラメータは、要求されるフィールドに単純名を指定するString
です。リフレクトされるフィールドは、次のアルゴリズムで決定されます。 ここでは、このオブジェクトが表すクラスまたはインタフェースをCとします。
- Cが指定された名前を持つpublicフィールドを宣言すると、それがリフレクトされるフィールドになります。
- 上記のステップ1でフィールドが見つからなかった場合は、このアルゴリズムをCのそれぞれの直接スーパー・インタフェースに再帰的に適用します。 直接スーパー・インタフェースは宣言された順序で検索されます。
- 上記のステップ1と2でフィールドが見つからない場合、およびCがスーパー・クラスSを持つ場合は、このアルゴリズムはSで再帰的に呼び出されます。 Cがスーパー・クラスを持たない場合は、
NoSuchFieldException
がスローされます。
この
Class
オブジェクトが配列型を表す場合、このメソッドはその配列型のlength
フィールドを見つけられません。- パラメータ:
name
- フィールド名- 戻り値:
name
で指定されたこのクラスのField
オブジェクト- 例外:
NoSuchFieldException
- 指定された名前のフィールドが見つからない場合。NullPointerException
-name
がnull
である場合SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
- 1.1
- Java™言語仕様を参照します:
- 8.2 クラスのメンバー、8.3 フィールド宣言
-
getMethod
public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
このClass
オブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・メソッドをリフレクトするMethod
オブジェクトを返します。name
パラメータは、要求されるメソッドに単純名を指定するString
です。parameterTypes
パラメータは、メソッドの仮パラメータ型を宣言された順序で識別するClass
オブジェクトの配列です。parameterTypes
がnull
の場合は、空の配列のように扱われます。この
Class
オブジェクトが配列型を表す場合、このメソッドはObject
からclone()
以外の配列型によって継承されたパブリック・メソッドを検出します。この
Class
オブジェクトがインタフェースを表す場合、このメソッドはObject
から暗黙的に宣言されたメソッドを検出しません。 したがって、このインタフェースまたはそのスーパー・インタフェースのいずれかで明示的に宣言されているメソッドがない場合、このメソッドはメソッドを検出しません。このメソッドは、名前が"
<init>
"または"<clinit>
"のメソッドを検出しません。一般に、反映されるメソッドは、以下の4ステップ・アルゴリズムによって決定されます。 Cをこの
Class
オブジェクトによって表されるクラスまたはインタフェースとします:- メソッドの組合は以下のもので構成される:
- Cは
getDeclaredMethods()
によって返されたpublicインスタンスと静的メソッドを宣言し、与えられたname
とparameterTypes
に一致するパブリック・メソッドのみを含むようにフィルタリングしました - Cが
Object
以外のクラスである場合、このアルゴリズムをCのスーパークラスに再帰的に呼び出す結果を含めます。 - このアルゴリズムをCのすべての直接スーパー・インタフェースに再帰的に呼び出す結果を含めますが、インスタンス・メソッドのみを含みます。
- Cは
- この共用体は、同じ戻り型(ステップ1からのメソッドの選択でも、メソッド名とパラメータ型が同じであることが保証されます)を持つメソッドのサブセットに分割されます。
- そのような各サブセット内では、最も具体的なメソッドのみが選択されます。 メソッドMを、同じVMシグネチャ(戻り値の型、名前、パラメータ型)を持つ一連のメソッドのメソッドとします。 Mは、NがMよりも特異的であるように、同じ集合からそのようなメソッドN!= Mが存在しない場合に最も具体的です。 NはMよりも具体的です:
- Nはクラスによって宣言され、Mはインタフェースによって宣言されます。または
- NとMはどちらもクラスによって宣言されており、どちらもインタフェースで宣言されています。N宣言型は、宣言型(MとNの宣言型が同じ型の場合、MとNは同じメソッドです)と同じか、またはサブ型です。
- このアルゴリズムの結果は、ステップ3のすべての選択されたメソッドの中で最も特定の戻り値の型を持つメソッドから任意に選択されます。 ステップ3のすべての選択されたメソッドのセットから、メソッドMの戻り型をRとします。 Mは、戻り値の型S!= Rを持ち、SがR.classによって決定されたRのサブ型であるような、同じセットからのそのようなメソッドN!= Mがない場合、最も具体的な戻り型を持つメソッドです。
isAssignableFrom(java.lang.Class<?>)
(S.class)。
- APIのノート:
- Java言語では、同じシグネチャで異なる戻り値の型を持つ複数のメソッドを宣言することをJava言語で禁じているため、Java仮想マシンでは名前とパラメータの型が一致するメソッドが複数存在することがあります。 仮想マシンのこのような柔軟性を使用して、さまざまな言語機能を実装することができます。 たとえば、共変リターンは「ブリッジ・メソッド」で実装できます。ブリッジ・メソッドとオーバーライド・メソッドは同じシグネチャを持ちますが、戻り値の型は異なります。 このメソッドは、より具体的な戻り型を持つように、オーバーライドするメソッドを返します。
- パラメータ:
name
- メソッドの名前parameterTypes
- パラメータのリスト- 戻り値:
- 指定された
name
とparameterTypes
に一致するMethod
オブジェクト - 例外:
NoSuchMethodException
- 一致するメソッドが見つからない場合、または名前が「<init>」または「<clinit>」の場合。NullPointerException
-name
がnull
である場合SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
- 1.1
- Java™言語仕様を参照します:
- 8.2 クラスのメンバー、8.4 メソッド宣言
- メソッドの組合は以下のもので構成される:
-
getConstructor
public Constructor<T> getConstructor(Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
このClass
オブジェクトが表すクラスの指定されたpublicコンストラクタをリフレクトするConstructor
オブジェクトを返します。parameterTypes
パラメータは、コンストラクタの仮パラメータ型を宣言された順序で識別するClass
オブジェクトの配列です。 このClass
オブジェクトが非staticコンテキストに宣言された内部クラスを表す場合、仮パラメータ型には最初のパラメータとして明示的な囲むインスタンスが含まれます。リフレクトするコンストラクタは、
parameterTypes
に指定された型と一致する仮パラメータ型を持つこのClass
オブジェクトが表すクラスのpublicコンストラクタです。- パラメータ:
parameterTypes
- パラメータ配列- 戻り値:
- 指定された
parameterTypes
と一致するpublicコンストラクタのConstructor
オブジェクト - 例外:
NoSuchMethodException
- 一致するメソッドが見つからない場合。SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
- 1.1
-
getDeclaredClasses
public Class<?>[] getDeclaredClasses() throws SecurityException
このClass
オブジェクトが表すクラスのメンバーとして宣言されたすべてのクラスおよびインタフェースをリフレクトするClass
オブジェクトの配列を返します。 これには、クラスが宣言したpublic、protected、デフォルト(package)アクセス、およびprivateクラスとインタフェースは含まれますが、継承クラスとインタフェースは含まれません。 このメソッドは、クラスがメンバーとしてクラスまたはインタフェースを宣言していない場合や、このClass
オブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合には、長さが0の配列を返します。- 戻り値:
- このクラスの宣言されたすべてのメンバーを表す
Class
オブジェクトの配列 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しがこのクラス内の宣言されたクラスへのアクセスを許可しない - 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.1
-
getDeclaredFields
public Field[] getDeclaredFields() throws SecurityException
このClass
オブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするField
オブジェクトの配列を返します。 これには、public、protected、デフォルト(package)アクセス、およびprivateフィールドは含まれますが、継承フィールドは含まれません。この
Class
オブジェクトが宣言されたフィールドを持たないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。この
Class
オブジェクトが配列型、プリミティブ型、またはvoidを表す場合、このメソッドは長さが0の配列を返します。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。
- 戻り値:
- このクラスの宣言されたすべてのフィールドを表す
Field
オブジェクトの配列 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しがこのクラス内の宣言されたフィールドへのアクセスを許可しない - 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.1
- Java™言語仕様を参照します:
- 8.2 クラスのメンバー、8.3 フィールド宣言
-
getDeclaredMethods
public Method[] getDeclaredMethods() throws SecurityException
このClass
オブジェクトによって表されるクラスまたはインタフェースのすべての宣言されたメソッドをリフレクトするMethod
オブジェクトが格納された配列を返します。これには、public、protected、デフォルト(package)アクセスおよびprivateメソッドが含まれますが、継承されたメソッドは除外されます。この
Class
オブジェクトが、名前とパラメータ型は同じであるが戻り値の型が異なる複数の宣言されたメソッドを持つ型を表す場合、返される配列にはそのような各メソッドのMethod
オブジェクトが含まれます。この
Class
オブジェクトがクラス初期化メソッド<clinit>
を持つ型を表す場合、返される配列には対応するMethod
オブジェクトは含まれません。この
Class
オブジェクトが宣言されたメソッドを持たないクラスまたはインタフェースを表す場合、返される配列の長さは0になります。この
Class
オブジェクトが配列型、プリミティブ型、またはvoidを表す場合、返される配列の長さは0になります。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。
- 戻り値:
- このクラスの宣言されたすべてのメソッドを表す
Method
オブジェクトの配列 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しがこのクラス内の宣言されたメソッドへのアクセスを許可しない - 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.1
- Java™言語仕様を参照します:
- 8.2 クラスのメンバー、8.4 メソッド宣言
-
getDeclaredConstructors
public Constructor<?>[] getDeclaredConstructors() throws SecurityException
このClass
オブジェクトが表すクラスによって宣言されたすべてのコンストラクタをリフレクトするConstructor
オブジェクトの配列を返します。 これらは、public、protected、デフォルト(package)アクセス、およびprivateコンストラクタです。 返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。 クラスがデフォルトのコンストラクタを持つ場合、このコンストラクタは返された配列にあります。 このメソッドは、このClass
オブジェクトがインタフェース、プリミティブ型、配列クラス、またはvoidを表す場合には長さが0の配列を返します。『Java言語仕様』のセクション8.2を参照してください。
- 戻り値:
- このクラスの宣言されたすべてのコンストラクタを表す
Constructor
オブジェクトの配列 - 例外:
SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しがこのクラス内の宣言されたコンストラクタへのアクセスを許可しない - 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.1
-
getDeclaredField
public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException
このClass
オブジェクトが表すクラスまたはインタフェースの、指定された宣言されたフィールドをリフレクトするField
オブジェクトを返します。name
パラメータは、要求されるフィールドに単純名を指定するString
です。この
Class
オブジェクトが配列型を表す場合、このメソッドはその配列型のlength
フィールドを見つけられません。- パラメータ:
name
- フィールドの名前- 戻り値:
- このクラスに指定されたフィールドの
Field
オブジェクト - 例外:
NoSuchFieldException
- 指定された名前のフィールドが見つからない場合。NullPointerException
-name
がnull
である場合SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しが宣言されたフィールドへのアクセスを許可しない - 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.1
- Java™言語仕様を参照します:
- 8.2 クラスのメンバー、8.3 フィールド宣言
-
getDeclaredMethod
public Method getDeclaredMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
このClass
オブジェクトが表すクラスまたはインタフェースの、指定された宣言されたメソッドをリフレクトするMethod
オブジェクトを返します。name
パラメータは、要求されたメソッドの単純名を指定するString
です。parameterTypes
パラメータは、メソッドの仮パラメータ型を宣言順に識別するClass
オブジェクトの配列です。 同じパラメータ型を持つ複数のメソッドが1つのクラスで宣言され、そうしたメソッドの1つがそれ以外のどれよりも明確な戻り値の型を持つ場合には、そのメソッドが返されます。そうでない場合は、メソッドの1つが任意に選択されます。 名前が「<init>」または「<clinit>」の場合、NoSuchMethodException
が発行されます。この
Class
オブジェクトが配列型を表す場合、このメソッドはclone()
メソッドを見つけられません。- パラメータ:
name
- メソッドの名前parameterTypes
- パラメータ配列- 戻り値:
- このクラスの指定された名前とパラメータと一致するメソッドの
Method
オブジェクト - 例外:
NoSuchMethodException
- 一致するメソッドが見つからない場合。NullPointerException
-name
がnull
である場合SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しが宣言されたメソッドへのアクセスを許可しない - 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.1
- Java™言語仕様を参照します:
- 8.2 クラスのメンバー、8.4 メソッド宣言
-
getDeclaredConstructor
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
このClass
オブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトするConstructor
オブジェクトを返します。parameterTypes
パラメータは、コンストラクタの仮パラメータ型を宣言された順序で識別するClass
オブジェクトの配列です。 このClass
オブジェクトが非staticコンテキストに宣言された内部クラスを表す場合、仮パラメータ型には最初のパラメータとして明示的な囲むインスタンスが含まれます。- パラメータ:
parameterTypes
- パラメータ配列- 戻り値:
- 指定されたパラメータ・リストを持つコンストラクタの
Constructor
オブジェクト - 例外:
NoSuchMethodException
- 一致するメソッドが見つからない場合。SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しが宣言されたコンストラクタへのアクセスを許可しない - 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
- 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.1
-
getResourceAsStream
public InputStream getResourceAsStream(String name)
指定された名前のリソースを探します。このクラスが名前付き
Module
にある場合、このメソッドはモジュール内のリソースを検索しようとします。 これは、モジュール・クラス・ローダーfindResource(String,String)
メソッドに委譲し、モジュール名とリソースの絶対名で起動します。 指定されたモジュールのリソースは、Module
getResourceAsStream
メソッドで指定されたカプセル化のルールの対象であるため、リソースが呼び出し元モジュールに対して開かれていないパッケージ内の非".class
"リソースである場合、このメソッドはnull
を返します。それ以外の場合、このクラスが名前付きモジュールにない場合、指定されたクラスに関連付けられたリソースを検索するためのルールは、クラスの「クラス・ローダー」の定義によって実装されます。 このメソッドは、このオブジェクトのクラス・ローダーに委譲されます。 このオブジェクトがブートストラップ・クラス・ローダーによってロードされた場合、このメソッドは
ClassLoader.getSystemResourceAsStream(java.lang.String)
に委任します。委譲の前に、このアルゴリズムを使って指定されたリソース名から絶対リソース名が構築されます。
-
name
が'/'
('\u002f'
)で始まっている場合、リソースの絶対名は、name
の'/'
のあとの部分になります。 - そうでない場合、絶対名は次の形式になります。
modified_package_name/name
ここで、
modified_package_name
は、このオブジェクトのパッケージ名の'.'
('\u002e'
)を'/'
で置き換えたものです。
- パラメータ:
name
- 要求されるリソースの名前- 戻り値:
InputStream
オブジェクト、この名前のリソースが見つからない場合はnull
、リソースが少なくともコール元モジュールに対してopenではないパッケージ内にある、またはリソースへのアクセスがセキュリティ・マネージャによって拒否されます。- 例外:
NullPointerException
-name
がnull
である場合- 導入されたバージョン:
- 1.1
- 関連項目:
Module.getResourceAsStream(String)
-
-
getResource
public URL getResource(String name)
指定された名前のリソースを探します。このクラスが名前付き
Module
にある場合、このメソッドはモジュール内のリソースを検索しようとします。 これは、モジュール・クラス・ローダーfindResource(String,String)
メソッドに委譲し、モジュール名とリソースの絶対名で起動します。 指定されたモジュールのリソースは、Module
getResourceAsStream
メソッドで指定されたカプセル化のルールの対象であるため、リソースが呼び出し元モジュールに対して開かれていないパッケージ内の非".class
"リソースである場合、このメソッドはnull
を返します。それ以外の場合、このクラスが名前付きモジュールにない場合、指定されたクラスに関連付けられたリソースを検索するためのルールは、クラスの「クラス・ローダー」の定義によって実装されます。 このメソッドは、このオブジェクトのクラス・ローダーに委譲されます。 このオブジェクトがブートストラップ・クラス・ローダーによってロードされた場合、このメソッドは
ClassLoader.getSystemResource(java.lang.String)
に委任します。委譲の前に、このアルゴリズムを使って指定されたリソース名から絶対リソース名が構築されます。
-
name
が'/'
('\u002f'
)で始まっている場合、リソースの絶対名は、name
の'/'
のあとの部分になります。 - そうでない場合、絶対名は次の形式になる
modified_package_name/name
ここで、
modified_package_name
は、このオブジェクトのパッケージ名の'.'
('\u002e'
)を'/'
で置き換えたものです。
- パラメータ:
name
- 要求されるリソースの名前- 戻り値:
URL
オブジェクト、null
がこの名前のリソースが見つからない場合、URLでリソースを見つけることができない、リソースが少なくとも呼出し元モジュールに対してopenではないパッケージにある、またはリソースへのアクセスがセキュリティ・マネージャによって拒否されます。- 例外:
NullPointerException
-name
がnull
である場合- 導入されたバージョン:
- 1.1
-
-
getProtectionDomain
public ProtectionDomain getProtectionDomain()
このクラスのProtectionDomain
を返します。 セキュリティ・マネージャがインストールされていると、このメソッドはまずセキュリティ・マネージャのcheckPermission
メソッドをRuntimePermission("getProtectionDomain")
アクセス権を使って呼び出すことによってProtectionDomain
を問題なく取得できることを確認します。- 戻り値:
- このクラスのProtectionDomain
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドがProtectionDomainの取得を許可しない場合。- 導入されたバージョン:
- 1.2
- 関連項目:
ProtectionDomain
,SecurityManager.checkPermission(java.security.Permission)
,RuntimePermission
-
desiredAssertionStatus
public boolean desiredAssertionStatus()
このメソッドの呼出し時にこのクラスを初期化する場合、クラスに割り当てられるアサーション・ステータスを返します。 このクラスのアサーション・ステータスが設定されている場合は、最新設定が返されます。それ以外の場合で、このクラスに関連するパッケージのデフォルトのアサーション・ステータスが存在するときは、最適なパッケージのデフォルトのアサーション・ステータスの最新設定が返されます。それ以外の場合で、このクラスがシステム・クラスでない(つまりクラス・ローダーを保持する)ときは、クラス・ローダーのデフォルトのアサーション・ステータスが返されます。それ以外の場合、システム・クラスのデフォルトのアサーション・ステータスが返されます。これはJRE自体で使用するためのメソッドであるため、プログラマがこのメソッドを必要とすることはほとんどありません (このメソッドにより、初期化時にアサーションが有効にするかどうかをクラスが判別できる)。 指定されたクラスの初期化時に、このメソッドが、指定されたクラスに関連付けられた実際のアサーション・ステータスを返すとは限らないことに留意してください。
- 戻り値:
- 対象とする、指定されたクラスのアサーション・ステータス
- 導入されたバージョン:
- 1.4
- 関連項目:
ClassLoader.setClassAssertionStatus(java.lang.String, boolean)
,ClassLoader.setPackageAssertionStatus(java.lang.String, boolean)
,ClassLoader.setDefaultAssertionStatus(boolean)
-
isEnum
public boolean isEnum()
このクラスがソース・コードでenumとして宣言された場合だけtrueを返します。- 戻り値:
- このクラスがソース・コードでenumとして宣言された場合だけtrue
- 導入されたバージョン:
- 1.5
-
getEnumConstants
public T[] getEnumConstants()
このenumクラスの要素を返すか、このClassオブジェクトがenum型を表さない場合はnullを返します。- 戻り値:
- このClassオブジェクトで表されたenumクラスで構成される値が格納されている配列(宣言された順)。このClassオブジェクトがenum型を表さない場合はnull
- 導入されたバージョン:
- 1.5
-
cast
public T cast(Object obj)
このClass
オブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。- パラメータ:
obj
- キャストされるオブジェクト- 戻り値:
- キャスト後のオブジェクト。オブジェクトがnullの場合はnull
- 例外:
ClassCastException
- オブジェクトがnull以外であり、型Tに割り当てられない場合。- 導入されたバージョン:
- 1.5
-
asSubclass
public <U> Class<? extends U> asSubclass(Class<U> clazz)
指定されたクラス・オブジェクトによって表されるクラスのサブクラスを表すためにこのClass
オブジェクトをキャストします。 キャストが有効であることを確認し、有効でない場合はClassCastException
をスローします。 このメソッドが成功すると、このクラス・オブジェクトへの参照を返します。このメソッドは、受け取る側の
Class
オブジェクトを制限するAPIに渡すために、クライアントがClass
オブジェクトの型をナロー変換する必要がある場合に役立ちます。 (ジェネリック型はイレイジャによって実装されるので)キャストの正確性を実行時に確認することはできないため、キャストによってコンパイル時の警告が生成されます。- 型パラメータ:
U
- このクラス・オブジェクトがキャストされる型- パラメータ:
clazz
- このクラス・オブジェクトがキャストされる型のクラス- 戻り値:
- 指定されたクラス・オブジェクトのサブクラスを表すためにキャストされた、この
Class
オブジェクト。 - 例外:
ClassCastException
- このClass
オブジェクトが指定されたクラスのサブクラスを表さない場合(「サブクラス」はクラス自体を含む)。- 導入されたバージョン:
- 1.5
-
getAnnotation
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
インタフェースからコピーされた説明:AnnotatedElement
存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。- 定義:
getAnnotation
、インタフェースAnnotatedElement
- 型パラメータ:
A
- 問合せの対象であり、存在する場合に返される注釈の型- パラメータ:
annotationClass
- 注釈型に対応するClassオブジェクト- 戻り値:
- 存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
- 例外:
NullPointerException
- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.5
-
isAnnotationPresent
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。 このメソッドは、主にマーカー注釈への簡易アクセスを目的に設計されています。このメソッドによって返されるtrue値は、
getAnnotation(annotationClass) != null
と同等です。デフォルト・メソッドの本体は、前述のコードとして指定されています。
- 定義:
isAnnotationPresent
、インタフェースAnnotatedElement
- パラメータ:
annotationClass
- 注釈型に対応するClassオブジェクト- 戻り値:
- 指定された注釈型の注釈がこの要素に存在する場合はtrue、そうでない場合はfalse
- 例外:
NullPointerException
- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.5
-
getAnnotationsByType
public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)
インタフェースからコピーされた説明:AnnotatedElement
この要素に関連付けられている注釈を返します。 この要素に関連付けられている注釈がない場合、戻り値は長さ0の配列です。 このメソッドとAnnotatedElement.getAnnotation(Class)
の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈を調べることで、その型の1つ以上の注釈の検索が試みられることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
getAnnotationsByType
、インタフェースAnnotatedElement
- 型パラメータ:
A
- 問合せの対象であり、存在する場合に返される注釈の型- パラメータ:
annotationClass
- 注釈型に対応するClassオブジェクト- 戻り値:
- この要素に関連付けられている場合は、この要素の指定された注釈型のすべての注釈。そうでない場合は長さ0の配列
- 例外:
NullPointerException
- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.8
-
getAnnotations
public Annotation[] getAnnotations()
インタフェースからコピーされた説明:AnnotatedElement
この要素に存在する注釈を返します。 この要素に存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
getAnnotations
、インタフェースAnnotatedElement
- 戻り値:
- この要素に存在する注釈
- 導入されたバージョン:
- 1.5
-
getDeclaredAnnotation
public <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)
インタフェースからコピーされた説明:AnnotatedElement
直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。 このメソッドは継承された注釈を無視します。 (この要素に直接存在する注釈がない場合は、nullを返します。)- 定義:
getDeclaredAnnotation
、インタフェースAnnotatedElement
- 型パラメータ:
A
- 問合せの対象であり、直接存在する場合に返される注釈の型- パラメータ:
annotationClass
- 注釈型に対応するClassオブジェクト- 戻り値:
- 直接存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
- 例外:
NullPointerException
- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.8
-
getDeclaredAnnotationsByType
public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)
インタフェースからコピーされた説明:AnnotatedElement
直接存在するか間接的に存在する場合は、この要素の指定された型の注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接または間接的に存在する指定された注釈がない場合、戻り値は長さ0の配列です。 このメソッドとAnnotatedElement.getDeclaredAnnotation(Class)
の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈(存在する場合)を調べることで、その型の1つ以上の注釈の検索が試みられることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
getDeclaredAnnotationsByType
、インタフェースAnnotatedElement
- 型パラメータ:
A
- 問合せの対象であり、直接または間接的に存在する場合に返される注釈の型- パラメータ:
annotationClass
- 注釈型に対応するClassオブジェクト- 戻り値:
- この要素に直接または間接的に存在する場合は、この要素の指定された注釈型のすべての注釈。そうでない場合は長さ0の配列
- 例外:
NullPointerException
- 指定された注釈クラスがnullの場合- 導入されたバージョン:
- 1.8
-
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()
インタフェースからコピーされた説明:AnnotatedElement
この要素に直接存在する注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
getDeclaredAnnotations
、インタフェースAnnotatedElement
- 戻り値:
- この要素に直接存在する注釈
- 導入されたバージョン:
- 1.5
-
getAnnotatedSuperclass
public AnnotatedType getAnnotatedSuperclass()
Class
オブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedType
オブジェクトを返します。 (「... extends Foo」でスーパー・クラスを指定するためのFoo型の使用はFoo型の宣言とは異なります。)この
Class
オブジェクトが、宣言が注釈付きのスーパー・クラスを明示的に示さない型を表す場合、戻り値は注釈の付かない要素を表すAnnotatedType
オブジェクトになります。この
Class
がObject
クラス、インタフェース・タイプ、配列型、プリミティブ型、またはvoidを表す場合、戻り値はnull
になります。- 戻り値:
- スーパー・クラスを表すオブジェクト
- 導入されたバージョン:
- 1.8
-
getAnnotatedInterfaces
public AnnotatedType[] getAnnotatedInterfaces()
Class
オブジェクトによって表されるエンティティのスーパーインタフェースを指定する型の使用を表すAnnotatedType
オブジェクトの配列を返します。 (「... implements Foo」でスーパー・インタフェースを指定するためのFoo型の使用はFoo型の宣言とは異なります。)この
Class
オブジェクトがクラスを表す場合、戻り値は、そのクラスによって実装されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。 配列内のオブジェクトの順序は、このClass
オブジェクトの宣言の「implements」節で使用されるインタフェース・タイプの順序に一致します。この
Class
オブジェクトがインタフェースを表す場合、戻り値は、そのインタフェースによって直接拡張されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。 配列内のオブジェクトの順序は、このClass
オブジェクトの宣言の「extends」節で使用されるインタフェース・タイプの順序に一致します。この
Class
オブジェクトが、宣言がいずれかの注釈付きスーパー・インタフェースを明示的に示さないクラスまたはインタフェースを表す場合、戻り値は長さが0の配列になります。この
Class
オブジェクトがObject
クラス、配列型、プリミティブ型、またはvoidを表す場合、戻り値は長さが0の配列になります。- 戻り値:
- スーパー・インタフェースを表す配列
- 導入されたバージョン:
- 1.8
-
getNestHost
public Class<?> getNestHost()
このClass
オブジェクトが表すクラスまたはインタフェースが属する「ネスト」のネストされたホストを返します。 クラスとインタフェースは、それぞれ1つのみのネストのメンバーです。 ネストに属するものとして記録されないクラスまたはインタフェースは、それ自体でのみ構成されるネストに属し、ネストされたホストです。配列のタイプ、プリミティブ型および
void
を表すClass
オブジェクトは、それぞれ自身で構成されるネストに属するエンティティであり、ネストされたホストであることを示すthis
を返します。ネストされたホストにアクセスする「リンケージ・エラー」がある場合、またはネストされたホストによってネストのメンバーとしてこのクラスまたはインタフェースが列挙されていない場合は、その固有のネストに属しているとみなされ、
this
がホストとして戻されます。- APIのノート:
- バージョン55.0以上の
class
ファイルでは、NestHost
属性(JVMS 4.7.28)を使用して、所属するネストのホストを記録できます。 または、バージョン55.0以上のclass
ファイルは、NestMembers
属性(JVMS 4.7.29)を持つ他のメンバーをネストすることで、ネストされたホストとして機能します。 バージョン54.0以下のclass
ファイルでは、これらの属性は使用されません。 - 戻り値:
- このクラスまたはインタフェースのネスト・ホスト
- 例外:
SecurityException
- 返されるクラスが現在のクラスではなく、セキュリティ・マネージャであるsが存在し、呼出し元のクラス・ローダーが返されるクラスのクラス・ローダーとs.checkPackageAccess()
の呼出しの上位または同じではない場合、返されるクラスのパッケージへのアクセスは拒否されます。- 導入されたバージョン:
- 11
- Java™仮想マシン仕様:
- 4.7.28 4.7.29 NestHost属性とNestMembers属性, 5.4.4アクセス制御
-
isNestmateOf
public boolean isNestmateOf(Class<?> c)
指定されたClass
が、このClass
オブジェクトによって表されるクラスまたはインタフェースをネストしたものであるかどうかを判定します。 2つのクラスまたはインタフェースが同じ「ホストのネスト」を持つ場合、それらはネストされます。- パラメータ:
c
- チェックするクラス- 戻り値:
- このクラスと
c
が同じネストのメンバーである場合はtrue
、それ以外の場合はfalse
。 - 導入されたバージョン:
- 11
-
getNestMembers
public Class<?>[] getNestMembers()
このClass
オブジェクトが属する、ネストされたクラスまたはインタフェースのメンバーであるすべてのクラスおよびインタフェースを表すClass
オブジェクトを含む配列を返します。 そのネストの「ホストのネスト」は、配列のzeroth要素です。 その後の要素は、ネストされたホストによって、ネストされたメンバーとして記録されたクラスまたはインタフェースを表します。そのような要素の順序は指定されません。 重複は許可されます。 ネストされたホストがメンバーを列挙しない場合、配列にはthis
を含む単一の要素が含まれます。配列のタイプ、プリミティブ型および
void
を表す各Class
オブジェクトは、this
のみを含む配列を返します。このメソッドは、ネスト・ホストによってネストのメンバーとして記録されるクラスまたはインタフェースごとに、そのクラスまたはインタフェースが同じネストのメンバーとしてそれ自体を記録することを検証します。 この検証中に発生した例外は、このメソッドによって再スローされます。
- 戻り値:
- このクラスと同じネストにあるすべてのクラスとインタフェースの配列
- 例外:
LinkageError
- ネストされたメンバーまたはそのネストされたホストのロードまたは検証に問題がある場合SecurityException
- 返されるクラスが現在のクラスではない場合、およびセキュリティ・マネージャであるsが存在し、呼出し元のクラス・ローダーが、返されたクラスのクラス・ローダーとs.checkPackageAccess()
の呼出しの上位または同じではない場合、返されたクラスのパッケージへのアクセスは拒否されます。- 導入されたバージョン:
- 11
- 関連項目:
getNestHost()
-
-