- 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コンストラクタはありません。Classオブジェクトは、クラスがロードされる際にJava Virtual Machineによって、およびクラス・ローダーの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());- 導入されたバージョン:
- 1.0
- 関連項目:
ClassLoader.defineClass(byte[], int, int), 直列化された形式
-
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 <U> Class<? extends U>asSubclass(Class<U> clazz)指定されたクラス・オブジェクトによって表されるクラスのサブクラスを表すためにこのClassオブジェクトをキャストします。Tcast(Object obj)このClassオブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。booleandesiredAssertionStatus()このメソッドの呼出し時にこのクラスを初期化する場合、クラスに割り当てられるアサーション・ステータスを返します。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オブジェクトの配列を返します。AnnotatedTypegetAnnotatedSuperclass()Classオブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedTypeオブジェクトを返します。<A extends Annotation>
AgetAnnotation(Class<A> annotationClass)存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。Annotation[]getAnnotations()この要素に存在する注釈を返します。<A extends Annotation>
A[]getAnnotationsByType(Class<A> annotationClass)この要素に関連付けられている注釈を返します。StringgetCanonicalName()『Java言語仕様』の定義に従って、基本となるクラスの正規名を返します。Class<?>[]getClasses()このClassオブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClassオブジェクトを格納している配列を返します。ClassLoadergetClassLoader()クラスのクラス・ローダーを返します。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オブジェクトの配列を返します。FieldgetDeclaredField(String name)このClassオブジェクトが表すクラスまたはインタフェースの、指定された宣言されたフィールドをリフレクトするFieldオブジェクトを返します。Field[]getDeclaredFields()このClassオブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするFieldオブジェクトの配列を返します。MethodgetDeclaredMethod(String name, Class<?>... parameterTypes)このClassオブジェクトが表すクラスまたはインタフェースの、指定された宣言されたメソッドをリフレクトするMethodオブジェクトを返します。Method[]getDeclaredMethods()このClassオブジェクトによって表されるクラスまたはインタフェースのすべての宣言されたメソッドをリフレクトするMethodオブジェクトが格納された配列を返します。これには、public、protected、デフォルト(package)アクセスおよびprivateメソッドが含まれますが、継承されたメソッドは除外されます。Class<?>getDeclaringClass()このClassオブジェクトが表すクラスまたはインタフェースが別のクラスのメンバーの場合は、それが宣言されたクラスを表すClassオブジェクトを返します。Class<?>getEnclosingClass()基本となるクラスを直接囲むクラスを返します。Constructor<?>getEnclosingConstructor()このClassオブジェクトが、コンストラクタ内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表すConstructorオブジェクトを返します。MethodgetEnclosingMethod()このClassオブジェクトが、メソッド内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表すMethodオブジェクトを返します。T[]getEnumConstants()このenumクラスの要素を返すか、このClassオブジェクトがenum型を表さない場合はnullを返します。FieldgetField(String name)このClassオブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・フィールドをリフレクトするFieldオブジェクトを返します。Field[]getFields()このClassオブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能なpublicフィールドをリフレクトする、Fieldオブジェクトを保持している配列を返します。Type[]getGenericInterfaces()このオブジェクトによって表されるインタフェースまたはクラスによって直接実装されるインタフェースを表すTypeを返します。TypegetGenericSuperclass()このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型、またはvoid)の直接のスーパー・クラスを表すTypeを返します。Class<?>[]getInterfaces()このオブジェクトが表すクラスまたはインタフェースによって直接実装されているインタフェースを返します。MethodgetMethod(String name, Class<?>... parameterTypes)このClassオブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・メソッドをリフレクトするMethodオブジェクトを返します。Method[]getMethods()このClassオブジェクトによって表されるクラスまたはインタフェースのすべてのpublicメソッドをリフレクトするMethodオブジェクトを格納している配列を返します。これには、クラスまたはインタフェースで宣言されたもの、およびスーパー・クラスやスーパー・インタフェースから継承されたものも含まれます。intgetModifiers()このクラスまたはインタフェースのJava言語修飾子を整数型に符号化して返します。ModulegetModule()このクラスまたはインタフェースがメンバーであるモジュールを返します。StringgetName()このClassオブジェクトが表すエンティティ(クラス、インタフェース、配列クラス、プリミティブ型、またはvoid)の名前を、Stringとして返します。PackagegetPackage()このクラスのパッケージを取得します。StringgetPackageName()完全修飾パッケージ名を返します。ProtectionDomaingetProtectionDomain()このクラスのProtectionDomainを返します。URLgetResource(String name)指定された名前のリソースを探します。InputStreamgetResourceAsStream(String name)指定された名前のリソースを探します。Object[]getSigners()このクラスの署名者を取得します。StringgetSimpleName()ソース・コード内で指定されたとおり、基本となるクラスの単純名を返します。Class<? super T>getSuperclass()このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型またはvoid)の直接スーパークラスを表すClassを返します。StringgetTypeName()この型の名前に関する情報提供文字列を返します。TypeVariable<Class<T>>[]getTypeParameters()GenericDeclarationオブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariableオブジェクトの配列を宣言順に返します。booleanisAnnotation()Classオブジェクトが注釈型を表す場合はtrueを返します。booleanisAnnotationPresent(Class<? extends Annotation> annotationClass)指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。booleanisAnonymousClass()基本となるクラスが匿名クラスである場合だけtrueを返します。booleanisArray()このClassオブジェクトが配列クラスを表すかどうかを判定します。booleanisAssignableFrom(Class<?> cls)このClassオブジェクトが表すクラスまたはインタフェースが、指定されたClassパラメータが表すクラスまたはインタフェースと等しいかどうか、あるいはそのスーパー・クラスあるいはスーパー・インタフェースであるかどうかを判定します。booleanisEnum()このクラスがソース・コードでenumとして宣言された場合だけtrueを返します。booleanisInstance(Object obj)指定されたObjectが、このClassが表すオブジェクトと代入互換の関係にあるかどうかを判定します。booleanisInterface()指定されたClassオブジェクトがインタフェース型を表すかどうかを判定します。booleanisLocalClass()基本となるクラスがローカル・クラスである場合だけtrueを返します。booleanisMemberClass()基本となるクラスがメンバー・クラスである場合だけtrueを返します。booleanisPrimitive()指定されたClassオブジェクトがプリミティブ型を表すかどうかを判定します。booleanisSynthetic()このクラスが合成クラスである場合はtrueを返し、そうでない場合はfalseを返します。TnewInstance()非推奨。このメソッドは、チェック例外を含むnullaryコンストラクタによってスローされた例外をすべて伝播します。StringtoGenericString()修飾子と型パラメータに関する情報を含む、このClassを記述する文字列を返します。StringtoString()オブジェクトを文字列に変換します。
-
-
-
メソッドの詳細
-
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")
ただし、このメソッドは、『Java言語仕様』のセクション12.2、12.3、12.4で指定された、ロード、リンク、または初期化に関連するエラーをスローします。 このメソッドは、要求されたクラスが呼出し側からアクセス可能であるかどうかをチェックしません。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- 指定されたモジュールまたは名前がnullLinkageError- リンケージに失敗した場合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ではなく、このClassオブジェクトが表す参照型にClassCastExceptionをスローすることなくキャストできる場合、このメソッドは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オブジェクトが返されます。 このクラスが名前のないモジュールにある場合、このクラスのクラス・ローダーのunnamedModuleが返されます。- 戻り値:
- このクラスまたはインタフェースがメンバーであるモジュール
- 導入されたバージョン:
- 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()
完全修飾パッケージ名を返します。このクラスがトップレベルのクラスである場合、このメソッドはクラスが所属するパッケージの完全修飾名を返します。クラスが名前のないパッケージにある場合は空の文字列を返します。
このクラスがメンバー・クラスの場合、このメソッドは
enclosing classでgetPackageName()を呼び出すのと同じです。このクラスが
local classまたはanonymous classの場合、このメソッドはenclosing methodまたはenclosing constructorのdeclaring classで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)メソッドに委譲し、モジュール名とリソースの絶対名で起動します。 指定されたモジュールのリソースは、ModulegetResourceAsStreamメソッドで指定されたカプセル化のルールの対象であるため、リソースが呼び出し元モジュールに対して開かれていないパッケージ内の非".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)メソッドに委譲し、モジュール名とリソースの絶対名で起動します。 指定されたモジュールのリソースは、ModulegetResourceAsStreamメソッドで指定されたカプセル化のルールの対象であるため、リソースが呼び出し元モジュールに対して開かれていないパッケージ内の非".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
-
-