- 型パラメータ:
 T- このClassオブジェクトでモデル化されるクラスの型。 たとえば、String.classの型はClass<String>である。 モデル化するクラスが不明な場合はClass<?>を使用する。
- すべての実装されたインタフェース:
 Serializable,Constable,TypeDescriptor,TypeDescriptor.OfField<Class<?>>,AnnotatedElement,GenericDeclaration,Type
Classクラスのインスタンスは、実行中のJavaアプリケーションのクラスおよびインタフェースを表します。 enumクラスとrecordクラスはクラスの一種で、annotationインタフェースはインタフェースの一種です。 同様にどの配列も、同じ要素のタイプおよび次元数を持つすべての配列により共有されるClassオブジェクトとしてリフレクトされるクラスに属します。 プリミティブJava型(boolean、byte、char、short、 int、long、float、およびdouble)やキーワードvoidも、Classオブジェクトとして表されます。 
  Classには、publicコンストラクタはありません。 かわりに、Classオブジェクトは、次のいずれかのメソッドの呼出しによってclassファイルのバイトからクラスが導出されると、Java Virtual Machineによって自動的に構築されます: 
 
-  
ClassLoader::defineClass -  
java.lang.invoke.MethodHandles.Lookup::defineClass -  
java.lang.invoke.MethodHandles.Lookup::defineHiddenClass 
 クラスClassのメソッドでは、クラスまたはインタフェースの多くの特性が公開されます。 ほとんどの特性は、クラス・ローダーがJava Virtual Machineに渡したclassファイル、またはLookup::defineClassまたはLookup::defineHiddenClassに渡されたclassファイルから導出されます。 いくつかの特性は、getModule()によって返されたモジュールなど、実行時のクラス・ロード環境によって決まります。 
 
 以下の例では、Classオブジェクトを使ってオブジェクトのクラス名を出力します。
 
     void printClassName(Object obj) {
         System.out.println("The class of " + obj +
                            " is " + obj.getClass().getName());
     }
 
 「クラス・リテラル」を使用して、名前付きクラスまたはインタフェース(またはvoidの場合)のClassオブジェクトを取得することもできます。 たとえば、 
 
     System.out.println("The name of class Foo is: "+Foo.class.getName());
 
  クラスClassの一部のメソッドでは、Javaソース・コードのクラスまたはインタフェースの宣言が別の宣言で「囲み」だったかどうかが公開されます。 他のメソッドは、クラスまたはインタフェースが「ネスト」にある状況を表します。 「ネスト」は、同じランタイム・パッケージ内のクラスとインタフェースのセットで、privateメンバーへの相互のアクセスを可能にします。 クラスおよびインタフェースは、nestmatesと呼ばれます。 1つのネストしたウィンドウは「ホストのネスト」の役割を果たし、他のネストしたコンテンツを列挙します。ネストしたホストとして各ネストします。 ネストしたクラス(ホストを含む)に属するクラスとインタフェースは、classファイルが生成されたときに判別されます。たとえば、Javaコンパイラでは通常、最上位クラスがネストのホストとして記録されます。ここでは、宣言が最上位クラス宣言で囲まれたクラスとインタフェースが他のメンバーになります。 
 
 Lookup::defineHiddenClassの起動によって作成されるクラスまたはインタフェースは、hiddenクラスまたはインタフェースです。 enumクラスやrecordクラスを含むすべての種類のクラスは非表示クラスである可能性があります。注釈インタフェースを含むすべての種類のインタフェースは非表示インタフェースである可能性があります。 「非表示のクラスまたはインタフェースの名前」は「バイナリ名」ではありません。つまり、次のようになります: 
 
- 非表示のクラスまたはインタフェースは、他のクラスおよびインタフェースの定数プールでは参照できません。
 - 非表示のクラスまたはインタフェースは、「名目書式」で
Class::describeConstable、ClassDesc::ofまたはClassDesc::ofDescriptorによって記述できません。 - 非表示のクラスまたはインタフェースは、
Class::forNameまたはClassLoader::loadClassでは検出できません。 
Classクラスのメソッドによって公開される特性には関係ありません。 - Java言語仕様を参照してください:
 - 
15.8.2 クラス・リテラル
 - 導入されたバージョン:
 - 1.0
 - 関連項目:
 
- 
ネストされたクラスのサマリー
インタフェースjava.lang.invoke.TypeDescriptorで宣言されたネストされたクラス/インタフェース
TypeDescriptor.OfField<F extends TypeDescriptor.OfField<F>>, TypeDescriptor.OfMethod<F extends TypeDescriptor.OfField<F>,M extends TypeDescriptor.OfMethod<F, M>>  - 
メソッドのサマリー
修飾子と型メソッド説明Class<?>コンポーネント型がこのClassによって記述されている配列型のClassを返します。<U> Class<? extends U>asSubclass(Class<U> clazz) 指定されたクラス・オブジェクトによって表されるクラスのサブクラスを表すためにこのClassオブジェクトをキャストします。このClassオブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。Class<?>配列型を説明する場合は、Classのコンポーネント型を返します。それ以外の場合は、nullを返します。このインスタンスの名目記述子を返します(作成可能な場合)、作成できない場合は空のOptionalを返します。このClassオブジェクトによって表されるエンティティ(クラス、インタフェース、配列クラス、プリミティブ型またはvoid)の記述子文字列を返します。booleanこのメソッドの呼出し時にこのクラスを初期化する場合、クラスに割り当てられるアサーション・ステータスを返します。static Class<?>与えられたモジュール内の与えられた「バイナリ名」を持つClassを返します。static Class<?>指定された文字列名を持つクラスまたはインタフェースに関連付けられた、Classオブジェクトを返します。static Class<?>forName(String name, boolean initialize, ClassLoader loader) 指定されたクラス・ローダーを使って、指定された文字列名を持つクラスまたはインタフェースに関連付けられたClassオブジェクトを返します。Classオブジェクトによって表されるエンティティのスーパーインタフェースを指定する型の使用を表すAnnotatedTypeオブジェクトの配列を返します。Classオブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedTypeオブジェクトを返します。<A extends Annotation>
AgetAnnotation(Class<A> annotationClass) 存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。この要素に存在する注釈を返します。<A extends Annotation>
A[]getAnnotationsByType(Class<A> annotationClass) この要素に関連付けられている注釈を返します。「Java言語仕様」で定義されている基礎となるクラスの正規名を返します。Class<?>[]このClassオブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClassオブジェクトを格納している配列を返します。クラスのクラス・ローダーを返します。Class<?>配列のコンポーネント型を表すClassを返します。getConstructor(Class<?>... parameterTypes) このClassオブジェクトが表すクラスの指定されたpublicコンストラクタをリフレクトするConstructorオブジェクトを返します。Constructor<?>[]このClassオブジェクトが表すクラスのすべてのpublicコンストラクタをリフレクトするConstructorオブジェクトを格納している配列を返します。<A extends Annotation>
AgetDeclaredAnnotation(Class<A> annotationClass) 直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。この要素に直接存在する注釈を返します。<A extends Annotation>
A[]getDeclaredAnnotationsByType(Class<A> annotationClass) 直接存在するか間接的に存在する場合は、この要素の指定された型の注釈を返します。Class<?>[]このClassオブジェクトが表すクラスのメンバーとして宣言されたすべてのクラスおよびインタフェースをリフレクトするClassオブジェクトの配列を返します。getDeclaredConstructor(Class<?>... parameterTypes) このClassオブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトするConstructorオブジェクトを返します。Constructor<?>[]このClassオブジェクトが表すクラスによって宣言されたすべてのコンストラクタをリフレクトするConstructorオブジェクトの配列を返します。getDeclaredField(String name) このClassオブジェクトが表すクラスまたはインタフェースの、指定された宣言されたフィールドをリフレクトするFieldオブジェクトを返します。Field[]このClassオブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするFieldオブジェクトの配列を返します。getDeclaredMethod(String name, Class<?>... parameterTypes) このClassオブジェクトが表すクラスまたはインタフェースの、指定された宣言されたメソッドをリフレクトするMethodオブジェクトを返します。Method[]このClassオブジェクトによって表されるクラスまたはインタフェースのすべての宣言されたメソッドをリフレクトするMethodオブジェクトが格納された配列を返します。これには、public、protected、デフォルト(package)アクセスおよびprivateメソッドが含まれますが、継承されたメソッドは除外されます。Class<?>このClassオブジェクトが表すクラスまたはインタフェースが別のクラスのメンバーの場合は、それが宣言されたクラスを表すClassオブジェクトを返します。Class<?>基本となるクラスを直接囲むクラスを返します。Constructor<?>このClassオブジェクトが、コンストラクタ内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表すConstructorオブジェクトを返します。このClassオブジェクトが、メソッド内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表すMethodオブジェクトを返します。T[]このenumクラスの要素を返します。このClassオブジェクトがenumクラスを表さない場合はnullを返します。このClassオブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・フィールドをリフレクトするFieldオブジェクトを返します。Field[]このClassオブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能なpublicフィールドをリフレクトする、Fieldオブジェクトを保持している配列を返します。Type[]このClassオブジェクトによって表されるクラスまたはインタフェースによって直接実装されるインタフェースを表すTypeを返します。このClassオブジェクトによって表されるエンティティ(クラス、インタフェース、プリミティブ型またはvoid)の直接スーパークラスを表すTypeを返します。Class<?>[]このClassオブジェクトが表すクラスまたはインタフェースによって直接実装されたインタフェースを返します。このClassオブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・メソッドをリフレクトするMethodオブジェクトを返します。Method[]このClassオブジェクトによって表されるクラスまたはインタフェースのすべてのpublicメソッドをリフレクトするMethodオブジェクトを格納している配列を返します。これには、クラスまたはインタフェースで宣言されたもの、およびスーパー・クラスやスーパー・インタフェースから継承されたものも含まれます。intこのクラスまたはインタフェースのJava言語修飾子を整数型に符号化して返します。このクラスまたはインタフェースがメンバーであるモジュールを返します。getName()このClassオブジェクトによって表されるエンティティ(クラス、インタフェース、配列クラス、プリミティブ型またはvoid)の名前を返します。Class<?>このClassオブジェクトが表すクラスまたはインタフェースが属する「ネスト」のネスト・ホストを返します。Class<?>[]このClassオブジェクトが属する、ネストされたクラスまたはインタフェースのメンバーであるすべてのクラスおよびインタフェースを表すClassオブジェクトを含む配列を返します。このクラスのパッケージを取得します。完全修飾パッケージ名を返します。Class<?>[]このクラスまたはインタフェースがシールされている場合、このクラスまたはインタフェースの拡張または実装を許可された直接のサブインタフェースまたはサブクラスを表すClassオブジェクトを含む配列を返します。このクラスのProtectionDomainを返します。このレコード・クラスのすべてのレコード・コンポーネントを表すRecordComponentオブジェクトの配列を返します。このクラスがレコード・クラスでない場合はnullを返します。getResource(String name) 指定された名前のリソースを探します。getResourceAsStream(String name) 指定された名前のリソースを探します。Object[]このクラスの署名者を取得します。ソース・コード内で指定されたとおり、基本となるクラスの単純名を返します。このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型またはvoid)の直接スーパークラスを表すClassを返します。このクラスまたはインタフェースの名前の情報文字列を返します。TypeVariable<Class<T>>[]GenericDeclarationオブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariableオブジェクトの配列を宣言順に返します。booleanこのClassオブジェクトが注釈インタフェースを表す場合はtrueを返します。booleanisAnnotationPresent(Class<? extends Annotation> annotationClass) 指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。boolean基本となるクラスが匿名クラスである場合だけtrueを返します。booleanisArray()このClassオブジェクトが配列クラスを表すかどうかを判定します。booleanisAssignableFrom(Class<?> cls) このClassオブジェクトが表すクラスまたはインタフェースが、指定されたClassパラメータが表すクラスまたはインタフェースと等しいかどうか、あるいはそのスーパー・クラスあるいはスーパー・インタフェースであるかどうかを判定します。booleanisEnum()このクラスがソース・コードでenumとして宣言された場合だけtrueを返します。booleanisHidden()基礎となるクラスが非表示クラスである場合にのみ、trueを返します。booleanisInstance(Object obj) 指定されたObjectが、このClassが表すオブジェクトと代入互換の関係にあるかどうかを判定します。booleanこのClassオブジェクトがインタフェース・タイプを表すかどうかを判定します。boolean基本となるクラスがローカル・クラスである場合だけtrueを返します。boolean基本となるクラスがメンバー・クラスである場合だけtrueを返します。booleanisNestmateOf(Class<?> c) 指定されたClassが、このClassオブジェクトによって表されるクラスまたはインタフェースをネストしたものであるかどうかを判定します。boolean指定されたClassオブジェクトがプリミティブ型を表すかどうかを判定します。booleanisRecord()このクラスがレコード・クラスである場合のみ、trueを返します。booleanisSealed()このClassオブジェクトがシール済クラスまたはインタフェースを表す場合にのみ、trueを返します。booleanこのクラスに合成修飾子ビットが設定されている場合にのみ、trueを返します。非推奨。このメソッドは、チェック例外を含むnullaryコンストラクタによってスローされた例外をすべて伝播します。修飾子と型パラメータに関する情報を含む、このClassを記述する文字列を返します。toString()オブジェクトを文字列に変換します。 
- 
メソッドの詳細
- 
toString
public String toString()オブジェクトを文字列に変換します。 文字列表現は、文字列"class"または"interface"の後にスペースが続き、getNameによって返される形式でクラスの名前が続きます。 このClassオブジェクトがプリミティブ型を表す場合、このメソッドはプリミティブ型の名前を返します。 このClassオブジェクトがvoidを表す場合は、「void」を返します。 このClassオブジェクトが配列型を表す場合、このメソッドは"class"とそれに続くgetNameを返します。 - 
toGenericString
public String toGenericString()修飾子と型パラメータに関する情報を含む、このClassを記述する文字列を返します。 文字列は型修飾子(ある場合)のリストとしてフォーマットされ、その後に(プリミティブ型およびclass、enum、interface、@interfaceまたはrecordの場合は、必要に応じて空の文字列)型が続き、型名が続き、型パラメータの小文字区切りのリスト(ある場合)、型パラメータの非公式境界(ある場合)が続く形式です。 修飾子同士、およびいずれかの修飾子と型の種類との区切りには空白が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オブジェクト。 - throws:
 LinkageError- リンケージに失敗した場合ExceptionInInitializerError- このメソッドによる初期化に失敗した場合ClassNotFoundException- クラスが見つからなかった場合- Java言語仕様を参照してください:
 - 
12.2 クラスおよびインタフェースのロード 
12.3 クラスおよびインタフェースのリンク
12.4 クラスおよびインタフェースの初期化 
 - 
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- クラスのロード元である必要があるクラス・ローダー- 戻り値:
 - 要求するクラスを表すクラス・オブジェクト
 - throws:
 LinkageError- リンケージに失敗した場合ExceptionInInitializerError- このメソッドによる初期化に失敗した場合ClassNotFoundException- 指定されたクラス・ローダーによってクラスが見つからなかった場合SecurityException- セキュリティ・マネージャが存在し、loaderがnullで、呼び出し側クラス・ローダーがnullではなく、呼び出し元にRuntimePermission("getClassLoader")がない場合- Java言語仕様を参照してください:
 - 
12.2 クラスおよびインタフェースのロード 
12.3 クラスおよびインタフェースのリンク
12.4 クラスおよびインタフェースの初期化 - 導入されたバージョン:
 - 1.2
 - 関連項目:
 
 - 
forName
与えられたモジュール内の与えられた「バイナリ名」を持つClassを返します。このメソッドは、クラスまたはインタフェースを検索してロードしようとします。 クラスをリンクしません。また、クラスのイニシャライザを実行しません。 クラスが見つからない場合、このメソッドは
nullを返します。指定されたモジュールのクラス・ローダーが他のモジュールを定義し、指定された名前が別のモジュールで定義されたクラスである場合、このメソッドはクラスがロードされた後に
nullを返します。このメソッドは、リクエストされたクラスが呼び出し元からアクセス可能かどうかをチェックしません。
- APIのノート:
 - このメソッドは、
forName(String, boolean, ClassLoader)メソッドのように、ClassNotFoundExceptionをスローするのではなく、失敗した場合にnullを返します。 セキュリティ・チェックは、呼び出し側が別のモジュール内のクラスをロードする場合、スタック・ベースの許可チェックです。 - パラメータ:
 module- モジュールname- クラスのバイナリ名- 戻り値:
 Class与えられたモジュールで定義されている指定された名前のオブジェクト。nullが見つからない場合。- throws:
 NullPointerException- 指定されたモジュールまたは名前がnullLinkageError- リンケージに失敗した場合SecurityException--  呼び出し元が指定されたモジュールではなく、
RuntimePermission("getClassLoader")パーミッションが拒否された場合。または -  モジュール・コンテンツへのアクセスは拒否されます。 たとえば、クラス・ローダーがモジュール内のクラス・ファイルのバイトを読み取るために
ModuleReader.open(String)を呼び出すと、パーミッション・チェックが実行されます。 
-  呼び出し元が指定されたモジュールではなく、
 - Java言語仕様を参照してください:
 - 
12.2 クラスおよびインタフェースのロード 
12.3 クラスおよびインタフェースのリンク - 導入されたバージョン:
 - 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式に空の引数リストを指定した場合と同じように、クラスのインスタンスが生成されます。 クラスは、初期化されていなければ初期化されます。- 戻り値:
 - このオブジェクトが表す、クラスの新しく割り当てられたインスタンス
 - throws:
 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値- throws:
 NullPointerException- 指定されたClassパラメータがnullの場合。- 導入されたバージョン:
 - 1.1
 
 - 
isInterface
public boolean isInterface()このClassオブジェクトがインタフェース・タイプを表すかどうかを判定します。- 戻り値:
 - この
Classオブジェクトがインタフェースを表す場合はtrue、それ以外の場合はfalse。 
 - 
isArray
public boolean isArray()このClassオブジェクトが配列クラスを表すかどうかを判定します。- 定義:
 - インタフェース
TypeDescriptor.OfField<T>内の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オブジェクトに限定されます。- 定義:
 - インタフェース
TypeDescriptor.OfField<T>内のisPrimitive - 戻り値:
 - このクラスがプリミティブ型を表す場合に限りtrue
 - 導入されたバージョン:
 - 1.1
 - 関連項目:
 
 - 
isAnnotation
public boolean isAnnotation()このClassオブジェクトが注釈インタフェースを表す場合はtrueを返します。 このメソッドがtrueを返す場合、すべての注釈インタフェースもインタフェースであるため、isInterface()もtrueを返します。- 戻り値:
 - この
Classオブジェクトが注釈インタフェースを表す場合はtrue、そうでない場合はfalse - 導入されたバージョン:
 - 1.5
 
 - 
isSynthetic
public boolean isSynthetic()このクラスに合成修飾子ビットが設定されている場合にのみ、trueを返します。- 戻り値:
 - このクラスに合成修飾子ビットが設定されている場合にのみ
true - Java言語仕様を参照してください:
 - 
13.1 バイナリの形式
 - Java Virtual Machine仕様を参照してください:
 - 
4.1 
ClassFile構造 - 導入されたバージョン:
 - 1.5
 - 関連項目:
 
 - 
getName
public String getName()このClassオブジェクトによって表されるエンティティ(クラス、インタフェース、配列クラス、プリミティブ型またはvoid)の名前を返します。この
Classオブジェクトが配列クラスではなくクラスまたはインタフェースを表す場合:- クラスまたはインタフェースがhiddenでない場合は、クラスまたはインタフェースの「バイナリ名」が返されます。
 -  クラスまたはインタフェースが非表示の場合、結果は次の形式の文字列になります。 : 
N + '/' + <suffix>では、NはLookup::defineHiddenClassに渡されるclassファイルによって示されるバイナリ名で、<suffix>は修飾されていない名前です。 
この
Classオブジェクトが配列クラスを表す場合、結果は、配列のネストの深さを表す1つ以上の'['文字と、次の表を使用してエンコードされた要素タイプで構成される文字列になります:要素タイプ Encoding booleanZbyteBcharC「バイナリ名」 Nとのクラスまたはインタフェース LN;doubleDfloatFintIlongJshortSこの
Classオブジェクトがプリミティブ型またはvoidを表す場合、結果は、プリミティブ型またはvoidに対応するJava言語キーワードと同じスペルの文字列になります。例
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"- 戻り値:
 - この
Classオブジェクトによって表されるクラス、インタフェースまたはその他のエンティティの名前。 - Java言語仕様を参照してください:
 - 
13.1 バイナリの形式
 
 - 
getClassLoader
public ClassLoader getClassLoader()クラスのクラス・ローダーを返します。 実装によっては、nullを使ってブートストラップ・クラス・ローダーを表すこともできます。 このメソッドは、このクラスがブートストラップ・クラス・ローダーでロードされた場合に、そのような実装でnullを返します。この
Classオブジェクトがプリミティブ型またはvoidを表す場合は、nullが返されます。- 戻り値:
 - この
Classオブジェクトによって表されるクラスまたはインタフェースをロードしたクラス・ローダー。 - throws:
 SecurityException- セキュリティ・マネージャが存在し、呼び出し側クラス・ローダーがnullでなく、クラス・ローダーがリクエストされたクラスのクラス・ローダーと同じでもなく、祖先でもなく、呼び出し元にRuntimePermission("getClassLoader")がない場合- 関連項目:
 
 - 
getModule
public Module getModule()このクラスまたはインタフェースがメンバーであるモジュールを返します。 このクラスが配列型を表す場合、このメソッドは要素型のModuleを返します。 このクラスがプリミティブ型またはvoidを表す場合は、java.baseモジュールのModuleオブジェクトが返されます。 このクラスが名前のないモジュールにある場合、このクラスのクラス・ローダーのunnamedModuleが返されます。- 戻り値:
 - このクラスまたはインタフェースがメンバーであるモジュール
 - 導入されたバージョン:
 - 9
 
 - 
getTypeParameters
public TypeVariable<Class<T>>[] getTypeParameters()GenericDeclarationオブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariableオブジェクトの配列を宣言順に返します。 基になるジェネリック宣言で型変数が宣言されていない場合は、長さ0の配列が返されます。- 定義:
 getTypeParameters、インタフェースGenericDeclaration- 戻り値:
 - このジェネリック宣言で宣言された型変数を表す
TypeVariableオブジェクトの配列 - throws:
 GenericSignatureFormatError- このジェネリック宣言のジェネリック・シグネチャが、「Java Virtual Machine仕様」の4.7.9セクションで指定された形式に準拠していない場合- 導入されたバージョン:
 - 1.5
 
 - 
getSuperclass
このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型またはvoid)の直接スーパークラスを表すClassを返します。 このClassが、Objectクラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。 このClassオブジェクトが配列クラスを表す場合は、Objectクラスを表すClassオブジェクトが返されます。- 戻り値:
 - この
Classオブジェクトによって表されるクラスの直接スーパー・クラス 
 - 
getGenericSuperclass
public Type getGenericSuperclass()このClassオブジェクトによって表されるエンティティ(クラス、インタフェース、プリミティブ型またはvoid)の直接スーパークラスを表すTypeを返します。スーパークラスがパラメータ化された型である場合、返される
Typeオブジェクトは、ソース・コードで使用される実際の型引数を正確に反映する必要があります。 スーパー・クラスを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。 パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedTypeの宣言を参照してください。 このClassオブジェクトがObjectクラス、インタフェース、プリミティブ型またはvoidのいずれかを表す場合は、nullが返されます。 このClassオブジェクトが配列クラスを表す場合は、Objectクラスを表すClassオブジェクトが返されます。- 戻り値:
 - この
Classオブジェクトによって表されるクラスの直接スーパー・クラス - throws:
 GenericSignatureFormatError- ジェネリック・クラス・シグネチャが、「Java Virtual Machine仕様」の4.7.9セクションで指定された形式に準拠していない場合TypeNotPresentException- ジェネリック・スーパークラスが、存在しない型宣言を参照する場合MalformedParameterizedTypeException- ジェネリック・スーパークラスが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合- 導入されたバージョン:
 - 1.5
 
 - 
getPackage
public Package getPackage()このクラスのパッケージを取得します。このクラスがプリミティブ型またはvoidの配列型を表す場合、このメソッドは
nullを返します。- 戻り値:
 - このクラスのパッケージ。
 
 - 
getPackageName
public String getPackageName()完全修飾パッケージ名を返します。このクラスがトップレベルのクラスである場合、このメソッドはクラスが所属するパッケージの完全修飾名を返します。クラスが名前のないパッケージにある場合は空の文字列を返します。
このクラスがメンバー・クラスである場合、このメソッドは「囲みクラス」上で
getPackageName()を呼び出すことに相当します。このクラスが「ローカル・クラス」または「匿名クラス」である場合、このメソッドは「囲みメソッド」または「包含コンストラクタ」の「宣言クラス」で「宣言クラス」を呼び出すことと同等です。
このクラスが配列型を表す場合、このメソッドは要素型のパッケージ名を返します。 このクラスがプリミティブ型またはvoidを表す場合は、パッケージ名"
java.lang"が返されます。- 戻り値:
 - 完全修飾パッケージ名
 - Java言語仕様を参照してください:
 - 
6.7 完全修飾名
 - 導入されたバージョン:
 - 9
 
 - 
getInterfaces
public Class<?>[] getInterfaces()このClassオブジェクトが表すクラスまたはインタフェースによって直接実装されたインタフェースを返します。この
Classオブジェクトがクラスを表す場合、戻り値は、クラスによって直接実装されるすべてのインタフェースを表すオブジェクトを含む配列です。 配列内のインタフェース・オブジェクトの順序は、このClassオブジェクトで表されるクラスの宣言のimplements句内のインタフェース名の順序に対応します。 たとえば、
という宣言があり、class Shimmer implements FloorWax, DessertTopping { ... }sの値がShimmerのインスタンスであるとします。
という式の値はs.getClass().getInterfaces()[0]FloorWaxインタフェースを表すClassオブジェクトであり、
という式の値は、s.getClass().getInterfaces()[1]DessertToppingインタフェースを表すClassオブジェクトです。この
Classオブジェクトがインタフェースを表す場合、配列には、インタフェースによって直接拡張されたすべてのインタフェースを表すオブジェクトが含まれます。 配列内のインタフェース・オブジェクトの順序は、このClassオブジェクトで表されるインタフェースの宣言のextends句内のインタフェース名の順序に対応します。この
Classオブジェクトがインタフェースを実装しないクラスまたはインタフェースを表す場合、このメソッドは長さ0の配列を返します。この
Classオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドは長さ0の配列を返します。この
Classオブジェクトが配列型を表す場合、Cloneableインタフェースとjava.io.Serializableインタフェースはその順序で返されます。- 戻り値:
 - このクラスによって直接実装されるインタフェースの配列
 
 - 
getGenericInterfaces
public Type[] getGenericInterfaces()このClassオブジェクトによって表されるクラスまたはインタフェースによって直接実装されるインタフェースを表すTypeを返します。スーパー・インタフェースがパラメータ化された型である場合、そのために返される
Typeオブジェクトは、ソース・コードで使用される実際の型引数を正確に反映する必要があります。 スーパー・インタフェースを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。 パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedTypeの宣言を参照してください。この
Classオブジェクトがクラスを表す場合、戻り値は、クラスによって直接実装されるすべてのインタフェースを表すオブジェクトを含む配列です。 配列内のインタフェース・オブジェクトの順序は、このClassオブジェクトで表されるクラスの宣言のimplements句内のインタフェース名の順序に対応します。この
Classオブジェクトがインタフェースを表す場合、配列には、インタフェースによって直接拡張されたすべてのインタフェースを表すオブジェクトが含まれます。 配列内のインタフェース・オブジェクトの順序は、このClassオブジェクトで表されるインタフェースの宣言のextends句内のインタフェース名の順序に対応します。この
Classオブジェクトがインタフェースを実装しないクラスまたはインタフェースを表す場合、このメソッドは長さ0の配列を返します。この
Classオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドは長さ0の配列を返します。この
Classオブジェクトが配列型を表す場合、Cloneableインタフェースとjava.io.Serializableインタフェースはその順序で返されます。- 戻り値:
 - このクラスによって直接実装されるインタフェースの配列
 - throws:
 GenericSignatureFormatError- ジェネリック・クラス・シグネチャが、「Java Virtual Machine仕様」の4.7.9セクションで指定された形式に準拠していない場合TypeNotPresentException- ジェネリック・スーパーインタフェースのどれかが、存在しない型宣言を参照する場合MalformedParameterizedTypeException- ジェネリック・スーパーインタフェースのどれかが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合- 導入されたバージョン:
 - 1.5
 
 - 
getComponentType
public Class<?> getComponentType()配列のコンポーネント型を表すClassを返します。 このクラスが配列クラスを表さない場合、このメソッドはnullを返します。- 戻り値:
 - このクラスが配列の場合、このクラスのコンポーネント型を示す
Class - 導入されたバージョン:
 - 1.1
 - 関連項目:
 
 - 
getModifiers
public int getModifiers()このクラスまたはインタフェースのJava言語修飾子を整数型に符号化して返します。 修飾子は、public、protected、private、final、static、abstract、およびinterface用のJava仮想マシンの定数から構成されます。これらは、Modifierクラスのメソッドを使ってデコードしなければいけません。基本となるクラスが配列クラスの場合、
public、private、およびprotectedの各修飾子はコンポーネント型の修飾子と同じです。 このClassオブジェクトがプリミティブ型またはvoidを表す場合、そのpublic修飾子は常にtrue、protectedおよびprivate修飾子は常にfalseです。 このClassオブジェクトが配列クラス、プリミティブ型またはvoidを表す場合、そのfinal修飾子は常にtrueで、そのインタフェース修飾子は常にfalseです。 その他の修飾子の値は、この仕様では判定されません。修飾子エンコーディングは、「Java Virtual Machine仕様」の4.1セクションで定義されています。
- 戻り値:
 - このクラスの修飾子を表す
int - Java言語仕様を参照してください:
 - 
「8.1.1 クラス修飾子」
「9.1.1.インタフェース修飾子」 - 導入されたバージョン:
 - 1.1
 - 関連項目:
 
 - 
getSigners
public Object[] getSigners()このクラスの署名者を取得します。- 戻り値:
 - このクラスの署名者。署名者がない場合はnull。 特に、この
Classオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドはnullを返します。 - 導入されたバージョン:
 - 1.1
 
 - 
getEnclosingMethod
public Method getEnclosingMethod() throws SecurityExceptionこのClassオブジェクトが、メソッド内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表すMethodオブジェクトを返します。 それ以外の場合はnullを返します。 特に、基礎となるクラスが、クラスまたはインタフェース宣言、インスタンス・イニシャライザまたはstaticイニシャライザで直接囲まれたローカル・クラスまたは匿名クラスである場合、このメソッドはnullを返します。- 戻り値:
 - クラスがローカル・クラスまたは匿名クラスの場合、基本となるクラスを直接囲むメソッド。そうでない場合は
null。 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが囲むクラス内のメソッドへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しが囲むクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
 - 導入されたバージョン:
 - 1.5
 
 - 
getEnclosingConstructor
public Constructor<?> getEnclosingConstructor() throws SecurityExceptionこのClassオブジェクトが、コンストラクタ内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表すConstructorオブジェクトを返します。 それ以外の場合はnullを返します。 特に、基礎となるクラスが、クラスまたはインタフェース宣言、インスタンス・イニシャライザまたはstaticイニシャライザで直接囲まれたローカル・クラスまたは匿名クラスである場合、このメソッドはnullを返します。- 戻り値:
 - クラスがローカル・クラスまたは匿名クラスの場合、基本となるクラスを直接囲むコンストラクタ。そうでない場合は
null。 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが囲むクラス内のコンストラクタへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しが囲むクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
 - 導入されたバージョン:
 - 1.5
 
 - 
getDeclaringClass
public Class<?> getDeclaringClass() throws SecurityExceptionこのClassオブジェクトが表すクラスまたはインタフェースが別のクラスのメンバーの場合は、それが宣言されたクラスを表すClassオブジェクトを返します。 このクラスまたはインタフェースがほかのクラスのメンバーでない場合は、nullを返します。 このClassオブジェクトが配列クラス、プリミティブ型、またはvoidを表す場合、このメソッドはnullを返します。- 戻り値:
 - このクラスを宣言するクラス
 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、宣言しているクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しが宣言しているクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
 - 1.1
 
 - 
getEnclosingClass
public Class<?> getEnclosingClass() throws SecurityException基本となるクラスを直接囲むクラスを返します。 基本となるクラスがトップレベル・クラスである場合、nullを返します。- 戻り値:
 - 基本となるクラスを直接囲むクラス
 - throws:
 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を返します。- APIのノート:
 - 匿名クラスは「非表示クラス」ではありません。
 - 戻り値:
 - このクラスが匿名クラスである場合だけ
true。 - Java言語仕様を参照してください:
 - 
15.9.5 匿名クラス宣言 
 - 導入されたバージョン:
 - 1.5
 
 - 
isLocalClass
public boolean isLocalClass()基本となるクラスがローカル・クラスである場合だけtrueを返します。- 戻り値:
 - このクラスがローカル・クラスである場合だけ
true。 - Java言語仕様を参照してください:
 - 
14.3 ローカル・クラス宣言 
 - 導入されたバージョン:
 - 1.5
 
 - 
isMemberClass
public boolean isMemberClass()基本となるクラスがメンバー・クラスである場合だけtrueを返します。- 戻り値:
 - このクラスがメンバー・クラスである場合だけ
true。 - Java言語仕様を参照してください:
 - 
8.5 メンバー・タイプ宣言 
 - 導入されたバージョン:
 - 1.5
 
 - 
getClasses
public Class<?>[] getClasses()このClassオブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClassオブジェクトを格納している配列を返します。 スーパー・クラスから継承したpublicクラスおよびインタフェースのメンバー、ならびにクラスが宣言したpublicクラスとインタフェースのメンバーも含まれます。 このClassオブジェクトがpublicメンバー・クラスやインタフェースを持たない場合、このメソッドは長さが0の配列を返します。 また、このClassオブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合も、このメソッドは長さが0の配列を返します。- 戻り値:
 - このクラスのpublicメンバーを表す
Classオブジェクトの配列 - throws:
 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オブジェクトの配列 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- Java言語仕様を参照してください:
 - 
8.2 クラス・メンバー 
8.3フィールド宣言 - 導入されたバージョン:
 - 1.1
 
 - 
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オブジェクトの配列 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- Java言語仕様を参照してください:
 - 
8.2 クラス・メンバー 
8.4メソッド宣言 - 導入されたバージョン:
 - 1.1
 
 -  メソッドの組合は以下のもので構成される:
   
 - 
getConstructors
public Constructor<?>[] getConstructors() throws SecurityExceptionこのClassオブジェクトが表すクラスのすべてのpublicコンストラクタをリフレクトするConstructorオブジェクトを格納している配列を返します。 クラスにpublicコンストラクタがない場合、クラスが配列クラスの場合、またはクラスがプリミティブ型またはvoidをリフレクトする場合には、長さが0の配列を返します。- APIのノート:
 - このメソッドは
Constructor<T>オブジェクト(このクラスのコンストラクタの配列)の配列を返しますが、このメソッドの戻り値の型はConstructor<?>[]であり、Constructor<T>[]ではありません。 この情報の少ない戻り値の型は、このメソッドから返されたあとで必要になり、この配列はさまざまなクラスのConstructorオブジェクトを保持するよう変更されることがあります。これは、Constructor<T>[]の型保証に違反します。 - 戻り値:
 - このクラスのpublicコンストラクタを表す
Constructorオブジェクトの配列 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
 - 1.1
 
 - 
getField
public Field getField(String name) throws NoSuchFieldException, SecurityException このClassオブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・フィールドをリフレクトするFieldオブジェクトを返します。nameパラメータは、要求されるフィールドに単純名を指定するStringです。リフレクトされるフィールドは、次のアルゴリズムで決定されます。 Cをこの
Classオブジェクトによって表されるクラスまたはインタフェースとします:- Cが指定された名前を持つpublicフィールドを宣言すると、それがリフレクトされるフィールドになります。
 - 上記のステップ1でフィールドが見つからなかった場合は、このアルゴリズムをCのそれぞれの直接スーパー・インタフェースに再帰的に適用します。 直接スーパー・インタフェースは宣言された順序で検索されます。
 -  上記のステップ1と2でフィールドが見つからない場合、およびCがスーパー・クラスSを持つ場合は、このアルゴリズムはSで再帰的に呼び出されます。 Cがスーパー・クラスを持たない場合は、
NoSuchFieldExceptionがスローされます。 
この
Classオブジェクトが配列型を表す場合、このメソッドはその配列型のlengthフィールドを見つけられません。- パラメータ:
 name- フィールド名- 戻り値:
 nameで指定されたこのクラスのFieldオブジェクト- throws:
 NoSuchFieldException- 指定された名前のフィールドが見つからない場合。NullPointerException-nameがnullである場合SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- Java言語仕様を参照してください:
 - 
8.2 クラス・メンバー 
8.3フィールド宣言 - 導入されたバージョン:
 - 1.1
 
 - 
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オブジェクト - throws:
 NoSuchMethodException- 一致するメソッドが見つからない場合、または名前が「<init>」または「<clinit>」の場合。NullPointerException-nameがnullである場合SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- Java言語仕様を参照してください:
 - 
8.2 クラス・メンバー 
8.4メソッド宣言 - 導入されたバージョン:
 - 1.1
 
 -  メソッドの組合は以下のもので構成される:
   
 - 
getConstructor
public Constructor<T> getConstructor(Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException このClassオブジェクトが表すクラスの指定されたpublicコンストラクタをリフレクトするConstructorオブジェクトを返します。parameterTypesパラメータは、コンストラクタの仮パラメータ型を宣言された順序で識別するClassオブジェクトの配列です。 このClassオブジェクトが非staticコンテキストに宣言された内部クラスを表す場合、仮パラメータ型には最初のパラメータとして明示的な囲むインスタンスが含まれます。リフレクトするコンストラクタは、
parameterTypesに指定された型と一致する仮パラメータ型を持つこのClassオブジェクトが表すクラスのpublicコンストラクタです。- パラメータ:
 parameterTypes- パラメータ配列- 戻り値:
 - 指定された
parameterTypesと一致するpublicコンストラクタのConstructorオブジェクト - throws:
 NoSuchMethodException- 一致するメソッドが見つからない場合。SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合- 導入されたバージョン:
 - 1.1
 
 - 
getDeclaredClasses
public Class<?>[] getDeclaredClasses() throws SecurityExceptionこのClassオブジェクトが表すクラスのメンバーとして宣言されたすべてのクラスおよびインタフェースをリフレクトするClassオブジェクトの配列を返します。 これには、クラスが宣言したpublic、protected、デフォルト(package)アクセス、およびprivateクラスとインタフェースは含まれますが、継承クラスとインタフェースは含まれません。 このメソッドは、クラスがメンバーとしてクラスまたはインタフェースを宣言していない場合や、このClassオブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合には、長さが0の配列を返します。- 戻り値:
 - このクラスの宣言されたすべてのメンバーを表す
Classオブジェクトの配列 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたクラスへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
 - Java言語仕様を参照してください:
 - 
8.5 メンバー・タイプ宣言 
 - 導入されたバージョン:
 - 1.1
 
 - 
getDeclaredFields
public Field[] getDeclaredFields() throws SecurityExceptionこのClassオブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするFieldオブジェクトの配列を返します。 これには、public、protected、デフォルト(package)アクセス、およびprivateフィールドは含まれますが、継承フィールドは含まれません。この
Classオブジェクトが宣言されたフィールドを持たないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。この
Classオブジェクトが配列型、プリミティブ型、またはvoidを表す場合、このメソッドは長さが0の配列を返します。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。
- 戻り値:
 - このクラスの宣言されたすべてのフィールドを表す
Fieldオブジェクトの配列 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたフィールドへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
 - Java言語仕様を参照してください:
 - 
8.2 クラス・メンバー 
8.3フィールド宣言 - 導入されたバージョン:
 - 1.1
 
 - 
getRecordComponents
public RecordComponent[] getRecordComponents()このレコード・クラスのすべてのレコード・コンポーネントを表すRecordComponentオブジェクトの配列を返します。このクラスがレコード・クラスでない場合はnullを返します。コンポーネントは、レコード・ヘッダーで宣言されたのと同じ順序で返されます。 このレコード・クラスにコンポーネントがない場合、配列は空です。 クラスがレコード・クラスではない、つまり
isRecord()がfalseを返す場合、このメソッドはnullを返します。 逆に、isRecord()からtrueが返された場合、このメソッドはnull以外の値を返します。- APIのノート:
 次のメソッドを使用して、レコードの標準コンストラクタを検索できます:
static <T extends Record> Constructor<T> getCanonicalConstructor(Class<T> cls) throws NoSuchMethodException { Class<?>[] paramTypes = Arrays.stream(cls.getRecordComponents()) .map(RecordComponent::getType) .toArray(Class<?>[]::new); return cls.getDeclaredConstructor(paramTypes); }- 戻り値:
 - このレコード・クラスのすべてのレコード・コンポーネントを表す
RecordComponentオブジェクトの配列。このクラスがレコード・クラスでない場合はnull。 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたメソッドへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
 - Java言語仕様を参照してください:
 - 
8.10 レコード・クラス
 - 導入されたバージョン:
 - 16
 
 - 
getDeclaredMethods
public Method[] getDeclaredMethods() throws SecurityExceptionこのClassオブジェクトによって表されるクラスまたはインタフェースのすべての宣言されたメソッドをリフレクトするMethodオブジェクトが格納された配列を返します。これには、public、protected、デフォルト(package)アクセスおよびprivateメソッドが含まれますが、継承されたメソッドは除外されます。 宣言されたメソッドには、クラスまたはインタフェースのソースに含まれないメソッド(コンパイラによって追加された「ブリッジ・メソッド」およびその他のsyntheticメソッドを含む)が含まれる場合があります。この
Classオブジェクトが、名前とパラメータの型は同じだが戻り値の型が異なる複数の宣言済メソッドを持つクラスまたはインタフェースを表す場合、返される配列にはそのようなメソッドごとにMethodオブジェクトがあります。この
Classオブジェクトがクラス初期化メソッド<clinit>を持つクラスまたはインタフェースを表す場合、返される配列には対応するMethodオブジェクトがありません。この
Classオブジェクトが宣言されたメソッドを持たないクラスまたはインタフェースを表す場合、返される配列の長さは0になります。この
Classオブジェクトが配列型、プリミティブ型、またはvoidを表す場合、返される配列の長さは0になります。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。
- 戻り値:
 - このクラスの宣言されたすべてのメソッドを表す
Methodオブジェクトの配列 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたメソッドへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
 - Java言語仕様を参照してください:
 - 
8.2 クラス・メンバー 
8.4メソッド宣言 - 導入されたバージョン:
 - 1.1
 - 関連項目:
 
 - 
getDeclaredConstructors
public Constructor<?>[] getDeclaredConstructors() throws SecurityExceptionこのClassオブジェクトが表すクラスによって宣言されたすべてのコンストラクタをリフレクトするConstructorオブジェクトの配列を返します。 これらは、public、protected、デフォルト(package)アクセス、およびprivateコンストラクタです。 返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。 クラスがデフォルトのコンストラクタを持つ場合、このコンストラクタは返された配列にあります。 このメソッドは、このClassオブジェクトがインタフェース、プリミティブ型、配列クラス、またはvoidを表す場合には長さが0の配列を返します。「Java言語仕様」の項8.2を参照してください。
- 戻り値:
 - このクラスの宣言されたすべてのコンストラクタを表す
Constructorオブジェクトの配列 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたコンストラクタへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
 - Java言語仕様を参照してください:
 - 
8.8 コンストラクタ宣言
 - 導入されたバージョン:
 - 1.1
 
 - 
getDeclaredField
public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException このClassオブジェクトが表すクラスまたはインタフェースの、指定された宣言されたフィールドをリフレクトするFieldオブジェクトを返します。nameパラメータは、要求されるフィールドに単純名を指定するStringです。この
Classオブジェクトが配列型を表す場合、このメソッドはその配列型のlengthフィールドを見つけられません。- パラメータ:
 name- フィールドの名前- 戻り値:
 - このクラスに指定されたフィールドの
Fieldオブジェクト - throws:
 NoSuchFieldException- 指定された名前のフィールドが見つからない場合。NullPointerException-nameがnullである場合SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが宣言されたフィールドへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
 - Java言語仕様を参照してください:
 - 
8.2 クラス・メンバー 
8.3フィールド宣言 - 導入されたバージョン:
 - 1.1
 
 - 
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オブジェクト - throws:
 NoSuchMethodException- 一致するメソッドが見つからない場合。NullPointerException-nameがnullである場合SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが宣言されたメソッドへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
 - Java言語仕様を参照してください:
 - 
8.2 クラス・メンバー 
8.4メソッド宣言 - 導入されたバージョン:
 - 1.1
 
 - 
getDeclaredConstructor
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException このClassオブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトするConstructorオブジェクトを返します。parameterTypesパラメータは、コンストラクタの仮パラメータ型を宣言された順序で識別するClassオブジェクトの配列です。 このClassオブジェクトが非staticコンテキストに宣言された内部クラスを表す場合、仮パラメータ型には最初のパラメータとして明示的な囲むインスタンスが含まれます。- パラメータ:
 parameterTypes- パラメータ配列- 戻り値:
 - 指定されたパラメータ・リストを持つコンストラクタの
Constructorオブジェクト - throws:
 NoSuchMethodException- 一致するメソッドが見つからない場合。SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
RuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが宣言されたコンストラクタへのアクセスを許可しない -  呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先と
s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない 
-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
 - 導入されたバージョン:
 - 1.1
 
 - 
getResourceAsStream
public InputStream getResourceAsStream(String name) 指定された名前のリソースを探します。このクラスが名前付き
Moduleにある場合、このメソッドはモジュール内のリソースを検索しようとします。 これは、モジュール・クラス・ローダーfindResource(String,String)メソッドに委譲し、モジュール名とリソースの絶対名で起動します。 指定されたモジュールのリソースは、ModulegetResourceAsStreamメソッドで指定されたカプセル化のルールの対象であるため、リソースが呼び出し元モジュールに対して開かれていないパッケージ内の非".class"リソースである場合、このメソッドはnullを返します。それ以外の場合、このクラスが名前付きモジュールにない場合、指定されたクラスに関連付けられたリソースを検索するためのルールは、クラスの「クラス・ローダー」の定義によって実装されます。 このメソッドは、この
Classオブジェクト・クラス・ローダーに委任します。 このClassオブジェクトがブートストラップ・クラス・ローダーによってロードされた場合、メソッドはClassLoader.getSystemResourceAsStream(java.lang.String)に委譲します。委譲の前に、このアルゴリズムを使って指定されたリソース名から絶対リソース名が構築されます。
-  
nameが'/'('\u002f')で始まっている場合、リソースの絶対名は、nameの'/'のあとの部分になります。 -  そうでない場合、絶対名は次の形式になる
 
modified_package_name/nameここで、
modified_package_nameは、このオブジェクトのパッケージ名の'.'('\u002e')を'/'で置き換えたものです。 
- パラメータ:
 name- 要求されるリソースの名前- 戻り値:
 InputStreamオブジェクト、この名前のリソースが見つからない場合はnull、リソースが少なくともコール元モジュールに対してopenではないパッケージ内にある、またはリソースへのアクセスがセキュリティ・マネージャによって拒否されます。- throws:
 NullPointerException-nameがnullである場合- 導入されたバージョン:
 - 1.1
 - 関連項目:
 
 -  
 - 
getResource
指定された名前のリソースを探します。このクラスが名前付き
Moduleにある場合、このメソッドはモジュール内のリソースを検索しようとします。 これは、モジュール・クラス・ローダーfindResource(String,String)メソッドに委譲し、モジュール名とリソースの絶対名で起動します。 指定されたモジュールのリソースは、ModulegetResourceAsStreamメソッドで指定されたカプセル化のルールの対象であるため、リソースが呼び出し元モジュールに対して開かれていないパッケージ内の非".class"リソースである場合、このメソッドはnullを返します。それ以外の場合、このクラスが名前付きモジュールにない場合、指定されたクラスに関連付けられたリソースを検索するためのルールは、クラスの「クラス・ローダー」の定義によって実装されます。 このメソッドは、この
Classオブジェクト・クラス・ローダーに委任します。 このClassオブジェクトがブートストラップ・クラス・ローダーによってロードされた場合、メソッドはClassLoader.getSystemResource(java.lang.String)に委譲します。委譲の前に、このアルゴリズムを使って指定されたリソース名から絶対リソース名が構築されます。
-  
nameが'/'('\u002f')で始まっている場合、リソースの絶対名は、nameの'/'のあとの部分になります。 -  そうでない場合、絶対名は次の形式になる
 
modified_package_name/nameここで、
modified_package_nameは、このオブジェクトのパッケージ名の'.'('\u002e')を'/'で置き換えたものです。 
- パラメータ:
 name- 要求されるリソースの名前- 戻り値:
 URLオブジェクト、nullがこの名前のリソースが見つからない場合、URLでリソースを見つけることができない、リソースが少なくとも呼出し元モジュールに対してopenではないパッケージにある、またはリソースへのアクセスがセキュリティ・マネージャによって拒否されます。- throws:
 NullPointerException-nameがnullである場合- 導入されたバージョン:
 - 1.1
 
 -  
 - 
getProtectionDomain
public ProtectionDomain getProtectionDomain()このクラスのProtectionDomainを返します。 セキュリティ・マネージャがインストールされていると、このメソッドはまずセキュリティ・マネージャのcheckPermissionメソッドをRuntimePermission("getProtectionDomain")アクセス権を使って呼び出すことによってProtectionDomainを問題なく取得できることを確認します。- 戻り値:
 - このクラスのProtectionDomain
 - throws:
 SecurityException- セキュリティ・マネージャが存在し、そのcheckPermissionメソッドがProtectionDomainの取得を許可しない場合。- 導入されたバージョン:
 - 1.2
 - 関連項目:
 
 - 
desiredAssertionStatus
public boolean desiredAssertionStatus()このメソッドの呼出し時にこのクラスを初期化する場合、クラスに割り当てられるアサーション・ステータスを返します。 このクラスのアサーション・ステータスが設定されている場合は、最新設定が返されます。それ以外の場合で、このクラスに関連するパッケージのデフォルトのアサーション・ステータスが存在するときは、最適なパッケージのデフォルトのアサーション・ステータスの最新設定が返されます。それ以外の場合で、このクラスがシステム・クラスでない(つまりクラス・ローダーを保持する)ときは、クラス・ローダーのデフォルトのアサーション・ステータスが返されます。それ以外の場合、システム・クラスのデフォルトのアサーション・ステータスが返されます。- APIのノート:
 - このメソッドを必要とするプログラマはほとんどいません。JDK自体の利点を得るために提供されています。 (このメソッドにより、初期化時にアサーションが有効にするかどうかをクラスが判別できる)。 指定されたクラスの初期化時に、このメソッドが、指定されたクラスに関連付けられた実際のアサーション・ステータスを返すとは限らないことに留意してください。
 - 戻り値:
 - 対象とする、指定されたクラスのアサーション・ステータス
 - 導入されたバージョン:
 - 1.4
 - 関連項目:
 
 - 
isEnum
public boolean isEnum()このクラスがソース・コードでenumとして宣言された場合だけtrueを返します。Enum自体は列挙型クラスではないことに注意してください。 また、enum定数がクラス本文で宣言されている場合、そのenum定数オブジェクトのクラスは匿名クラスであり、宣言するenumクラスのクラスではないことにも注意してください。 enum定数のEnum.getDeclaringClass()メソッドを使用すると、定数を宣言するenumクラスのクラスを取得できます。- 戻り値:
 - このクラスがソース・コードでenumとして宣言された場合だけtrue
 - Java言語仕様を参照してください:
 - 
8.9.1 enum定数
 - 導入されたバージョン:
 - 1.5
 
 - 
isRecord
public boolean isRecord()このクラスがレコード・クラスである場合のみ、trueを返します。レコード・クラスの「直接スーパークラス」は、
java.lang.Recordです。 レコード・クラスはfinalです。 レコード・クラスには(0(ゼロ))レコード・コンポーネントがあります。getRecordComponents()はレコードに対してnull以外の値を返しますが、空の場合もあります。クラス
Recordはレコード・クラスではないため、Recordクラスでこのメソッドを呼び出すと、falseが返されます。- 戻り値:
 - このクラスがレコード・クラスである場合のみtrue。それ以外の場合はfalse
 - Java言語仕様を参照してください:
 - 
8.10 レコード・クラス
 - 導入されたバージョン:
 - 16
 
 - 
getEnumConstants
public T[] getEnumConstants()このenumクラスの要素を返します。このClassオブジェクトがenumクラスを表さない場合はnullを返します。- 戻り値:
 - 宣言された順序でこの
Classオブジェクトによって表されるenumクラスを構成する値を含む配列。このClassオブジェクトがenumクラスを表さない場合はnull - Java言語仕様を参照してください:
 - 
8.9.1 enum定数
 - 導入されたバージョン:
 - 1.5
 
 - 
cast
このClassオブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。- パラメータ:
 obj- キャストされるオブジェクト- 戻り値:
 - キャスト後のオブジェクト。オブジェクトがnullの場合はnull
 - throws:
 ClassCastException- オブジェクトがnull以外であり、型Tに割り当てられない場合。- 導入されたバージョン:
 - 1.5
 
 - 
asSubclass
指定されたクラス・オブジェクトによって表されるクラスのサブクラスを表すためにこのClassオブジェクトをキャストします。 キャストが有効であることを確認し、有効でない場合はClassCastExceptionをスローします。 このメソッドが成功すると、常にこのClassオブジェクトへの参照が返されます。このメソッドは、受け取る側の
Classオブジェクトを制限するAPIに渡すために、クライアントがClassオブジェクトの型をナロー変換する必要がある場合に役立ちます。 (ジェネリック型はイレイジャによって実装されるので)キャストの正確性を実行時に確認することはできないため、キャストによってコンパイル時の警告が生成されます。- 型パラメータ:
 U- このClassオブジェクトのキャスト先の型- パラメータ:
 clazz- このClassオブジェクトのキャスト先の型のクラス- 戻り値:
 - 指定されたクラス・オブジェクトのサブクラスを表すためにキャストされた、この
Classオブジェクト。 - throws:
 ClassCastException- このClassオブジェクトが指定されたクラスのサブクラスを表さない場合(「サブクラス」はクラス自体を含む)。- 導入されたバージョン:
 - 1.5
 
 - 
getAnnotation
public <A extends Annotation> A getAnnotation(Class<A> annotationClass) 存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
 getAnnotation、インタフェースAnnotatedElement- 型パラメータ:
 A- 問合せの対象であり、存在する場合に返される注釈の型- パラメータ:
 annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
 - 存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
 - throws:
 NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
 - 1.5
 
 - 
isAnnotationPresent
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) 指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。 このメソッドは、主にマーカー注釈への簡易アクセスを目的に設計されています。このメソッドによって返されるtrue値は、
getAnnotation(annotationClass) != nullと同等です。- 定義:
 isAnnotationPresent、インタフェースAnnotatedElement- パラメータ:
 annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
 - 指定された注釈型の注釈がこの要素に存在する場合はtrue、そうでない場合はfalse
 - throws:
 NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
 - 1.5
 
 - 
getAnnotationsByType
public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass) この要素に関連付けられている注釈を返します。 この要素に関連付けられている注釈がない場合、戻り値は長さ0の配列です。 このメソッドとAnnotatedElement.getAnnotation(Class)の違いは、引数が「繰返し可能な注釈タイプ」 (JLS 9.6)であるかどうかをこのメソッドが検出し、その場合、"検索"がコンテナ注釈を使用してそのタイプの注釈を検索しようとすることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
 getAnnotationsByType、インタフェースAnnotatedElement- 型パラメータ:
 A- 問合せの対象であり、存在する場合に返される注釈の型- パラメータ:
 annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
 - この要素に関連付けられている場合は、この要素の指定された注釈型のすべての注釈。そうでない場合は長さ0の配列
 - throws:
 NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
 - 1.8
 
 - 
getAnnotations
public Annotation[] getAnnotations()この要素に存在する注釈を返します。 この要素に存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
 getAnnotations、インタフェースAnnotatedElement- 戻り値:
 - この要素に存在する注釈
 - 導入されたバージョン:
 - 1.5
 
 - 
getDeclaredAnnotation
public <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass) 直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。 このメソッドは継承された注釈を無視します。 (この要素に直接存在する注釈がない場合は、nullを返します。)このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
 getDeclaredAnnotation、インタフェースAnnotatedElement- 型パラメータ:
 A- 問合せの対象であり、直接存在する場合に返される注釈の型- パラメータ:
 annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
 - 直接存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
 - throws:
 NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
 - 1.8
 
 - 
getDeclaredAnnotationsByType
public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass) 直接存在するか間接的に存在する場合は、この要素の指定された型の注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接または間接的に存在する指定された注釈がない場合、戻り値は長さ0の配列です。 このメソッドとAnnotatedElement.getDeclaredAnnotation(Class)の違いは、引数が「繰返し可能な注釈タイプ」 (JLS 9.6)であるかどうかをこのメソッドが検出し、ある場合は"検索"がコンテナ注釈(存在する場合)を検出しようとする点です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
 getDeclaredAnnotationsByType、インタフェースAnnotatedElement- 型パラメータ:
 A- 問合せの対象であり、直接または間接的に存在する場合に返される注釈の型- パラメータ:
 annotationClass- 注釈型に対応するClassオブジェクト- 戻り値:
 - この要素に直接または間接的に存在する場合は、この要素の指定された注釈型のすべての注釈。そうでない場合は長さ0の配列
 - throws:
 NullPointerException- 指定された注釈クラスがnullの場合- 導入されたバージョン:
 - 1.8
 
 - 
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()この要素に直接存在する注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。このメソッドによって返される注釈は宣言注釈であることに注意してください。
- 定義:
 getDeclaredAnnotations、インタフェースAnnotatedElement- 戻り値:
 - この要素に直接存在する注釈
 - 導入されたバージョン:
 - 1.5
 
 - 
getAnnotatedSuperclass
public AnnotatedType getAnnotatedSuperclass()Classオブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedTypeオブジェクトを返します。 ('... extends Foo'でスーパークラスを指定するFooタイプのuseは、Fooクラスの「宣言」とは異なります。)この
Classオブジェクトが、宣言が明示的に注釈付きスーパークラスを示していないクラスを表す場合、戻り値は注釈のない要素を表すAnnotatedTypeオブジェクトです。この
ClassがObjectクラス、インタフェース・タイプ、配列型、プリミティブ型、またはvoidを表す場合、戻り値はnullになります。- 戻り値:
 - スーパー・クラスを表すオブジェクト
 - 導入されたバージョン:
 - 1.8
 
 - 
getAnnotatedInterfaces
public AnnotatedType[] getAnnotatedInterfaces()Classオブジェクトによって表されるエンティティのスーパーインタフェースを指定する型の使用を表すAnnotatedTypeオブジェクトの配列を返します。 ('... implements Foo'でスーパー・インタフェースを指定するFooタイプのuseは、Fooインタフェースの「宣言」とは異なります。)この
Classオブジェクトがクラスを表す場合、戻り値は、そのクラスによって実装されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。 配列内のオブジェクトの順序は、このClassオブジェクトの宣言の「implements」節で使用されるインタフェース・タイプの順序に一致します。この
Classオブジェクトがインタフェースを表す場合、戻り値は、そのインタフェースによって直接拡張されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。 配列内のオブジェクトの順序は、このClassオブジェクトの宣言の「extends」節で使用されるインタフェース・タイプの順序に一致します。この
Classオブジェクトが、宣言がいずれかの注釈付きスーパー・インタフェースを明示的に示さないクラスまたはインタフェースを表す場合、戻り値は長さが0の配列になります。この
ClassオブジェクトがObjectクラス、配列型、プリミティブ型、またはvoidを表す場合、戻り値は長さが0の配列になります。- 戻り値:
 - スーパー・インタフェースを表す配列
 - 導入されたバージョン:
 - 1.8
 
 - 
getNestHost
public Class<?> getNestHost()このClassオブジェクトが表すクラスまたはインタフェースが属する「ネスト」のネスト・ホストを返します。 すべてのクラスとインタフェースは、1つのネストに属します。 このクラスまたはインタフェースのネストされたホストがすでに決定されている場合、このメソッドはネストされたホストを返します。 このクラスまたはインタフェースのネストされたホストがまだ決定されていない場合、このメソッドはJVMS 5.4.4のアルゴリズムを使用してネストされたホストを判別し、それを返します。 多くの場合、クラスまたはインタフェースはそれ自体のみで構成されるネストに属しており、その場合、このメソッドはクラスまたはインタフェースがネストされたホストであることを示すthisを返します。この
Classオブジェクトがプリミティブ型、配列型またはvoidを表す場合、このメソッドは、表現されたエンティティがそれ自体で構成されるネストに属し、ネストされたホストであることを示すthisを返します。- 戻り値:
 - このクラスまたはインタフェースのネスト・ホスト
 - throws:
 SecurityException- 返されるクラスが現在のクラスではなく、セキュリティ・マネージャであるsが存在し、呼出し元のクラス・ローダーが返されるクラスのクラス・ローダーとs.checkPackageAccess()の呼出しの上位または同じではない場合、返されるクラスのパッケージへのアクセスは拒否されます。- Java Virtual Machine仕様を参照してください:
 - 
4.7.28 
NestHost属性
4.7.29NestMembers属性
5.4.4アクセス制御 - 導入されたバージョン:
 - 11
 
 - 
isNestmateOf
public boolean isNestmateOf(Class<?> c) 指定されたClassが、このClassオブジェクトによって表されるクラスまたはインタフェースをネストしたものであるかどうかを判定します。 2つのクラスまたはインタフェースが同じ「ホストのネスト」を持つ場合、それらはネストされます。- パラメータ:
 c- チェックするクラス- 戻り値:
 - このクラスと
cが同じネストのメンバーである場合はtrue、それ以外の場合はfalse。 - 導入されたバージョン:
 - 11
 
 - 
getNestMembers
public Class<?>[] getNestMembers()このClassオブジェクトが属する、ネストされたクラスまたはインタフェースのメンバーであるすべてのクラスおよびインタフェースを表すClassオブジェクトを含む配列を返します。 最初に、このメソッドは、このClassオブジェクトによって表されるクラスまたはインタフェースが属するネストの「ホストのネスト」、Hを取得します。 返される配列のゼロ番目の要素はHです。 次に、Hによってネストのメンバーとして記録されるクラスまたはインタフェースCごとに、このメソッドはC(現在のClassオブジェクトの「定義クラス・ローダー」の使用)のClassオブジェクトを取得し、Cが属するネストの「ホストのネスト」を取得しようとします。Hによってネストのメンバーとして記録され、Hをネスト・ホストとして判別できるクラスおよびインタフェースは、戻される配列の後続の要素によって示されます。 このような要素の順序は指定されません。 重複は許可されます。この
Classオブジェクトがプリミティブ型、配列型またはvoidを表す場合、このメソッドはthisを含む単一要素配列を返します。- APIのノート:
 - 返される配列には、
NestMembers属性に記録されたネスト・メンバーのみが含まれ、Lookup::defineHiddenClassを介してネストに追加された非表示クラスは含まれません。 - 戻り値:
 - このクラスまたはインタフェースと同じネスト内のすべてのクラスおよびインタフェースの配列
 - throws:
 SecurityException- 返されるクラスが現在のクラスではない場合、およびセキュリティ・マネージャであるsが存在し、呼出し元のクラス・ローダーが、返されたクラスのクラス・ローダーとs.checkPackageAccess()の呼出しの上位または同じではない場合、返されたクラスのパッケージへのアクセスは拒否されます。- Java Virtual Machine仕様を参照してください:
 - 
4.7.28 
NestHost属性
4.7.29NestMembers属性 - 導入されたバージョン:
 - 11
 - 関連項目:
 
 - 
descriptorString
public String descriptorString()このClassオブジェクトによって表されるエンティティ(クラス、インタフェース、配列クラス、プリミティブ型またはvoid)の記述子文字列を返します。この
Classオブジェクトが配列クラスではなくクラスまたはインタフェースを表す場合:-  クラスまたはインタフェースがhiddenでない場合、結果はクラスまたはインタフェースのフィールド記述子(JVMS 4.3.2)になります。 結果記述子文字列を使用して
ClassDesc::ofDescriptorをコールすると、このクラスまたはインタフェースを記述するClassDescが生成されます。 -  クラスまたはインタフェースがhiddenの場合、結果は次の形式の文字列になります:
      
ここで、Nは"L" +N+ "." + <suffix> + ";"Lookup::defineHiddenClassに渡されるclassファイルによって示される内部形式でエンコードされた「バイナリ名」で、<suffix>は修飾されていない名前です。 非表示のクラスまたはインタフェースには「名目記述子」がありません。 結果文字列が型記述子ではありません。 
この
Classオブジェクトが配列クラスを表す場合、結果は、配列のネストの深さを表す1つ以上の'['文字と、要素タイプの記述子文字列で構成される文字列になります。-  要素タイプがhiddenクラスまたはインタフェースでない場合、この配列クラスは名目的に記述できます。 結果記述子文字列を使用して
ClassDesc::ofDescriptorをコールすると、この配列クラスを記述するClassDescが生成されます。 - 要素タイプがhiddenクラスまたはインタフェースの場合、この配列クラスは名目的に記述できません。 結果文字列が型記述子ではありません。
 
この
Classオブジェクトがプリミティブ型またはvoidを表す場合、結果はプリミティブ型またはvoid("B", "C", "D", "F", "I", "J", "S", "Z", "V") (JVMS 4.3.2)に対応する一文字コードであるフィールド記述子文字列になります。- 定義:
 - インタフェース
TypeDescriptor内のdescriptorString - APIのノート:
 - これは
forName(java.lang.String)の厳密な逆ではありません。共通名を共有しているが、異なるクラス・ローダーを持つ個別のクラスは、同一の記述子文字列を持ちます。 - 戻り値:
 - この
Classオブジェクトの記述子文字列 - Java Virtual Machine仕様を参照してください:
 - 
4.3.2 フィールド記述子 
 - 導入されたバージョン:
 - 12
 
 -  クラスまたはインタフェースがhiddenでない場合、結果はクラスまたはインタフェースのフィールド記述子(JVMS 4.3.2)になります。 結果記述子文字列を使用して
 - 
componentType
public Class<?> componentType()配列型を説明する場合は、Classのコンポーネント型を返します。それ以外の場合は、nullを返します。- 定義:
 - インタフェース
TypeDescriptor.OfField<T>内のcomponentType - 実装要件:
 getComponentType()と同等です。- 戻り値:
 Classはコンポーネント・タイプを説明します。または、Classが配列型を記述しない場合はnull- 導入されたバージョン:
 - 12
 
 - 
arrayType
public Class<?> arrayType()コンポーネント型がこのClassによって記述されている配列型のClassを返します。- 定義:
 - インタフェース
TypeDescriptor.OfField<T>内のarrayType - 戻り値:
 - 配列型について説明する
Class - 導入されたバージョン:
 - 12
 
 - 
describeConstable
このインスタンスの名目記述子を返します(作成可能な場合)、作成できない場合は空のOptionalを返します。- 定義:
 - インタフェース
Constable内のdescribeConstable - 戻り値:
 - 最終的な名目記述子を含む
Optional、または作成できない場合は空のOptional。 - 導入されたバージョン:
 - 12
 
 - 
isHidden
public boolean isHidden()基礎となるクラスが非表示クラスである場合にのみ、trueを返します。- 戻り値:
 - このクラスが非表示クラスの場合にのみ
true。 - 導入されたバージョン:
 - 15
 - 関連項目:
 
 - 
getPermittedSubclasses
public Class<?>[] getPermittedSubclasses()このクラスまたはインタフェースがシールされている場合、このクラスまたはインタフェースの拡張または実装を許可された直接のサブインタフェースまたはサブクラスを表すClassオブジェクトを含む配列を返します。 このような要素の順序は指定されません。 このシール済クラスまたはインタフェースに許可されたサブクラスがない場合、配列は空です。 このClassオブジェクトがプリミティブ型、void、配列型、またはシールされていないクラスやインタフェースを表す場合、つまりisSealed()がfalseを返す場合、このメソッドはnullを返します。 逆に、isSealed()からtrueが返された場合、このメソッドはnull以外の値を返します。 このメソッドは、このクラスまたはインタフェースの許可された直接サブインタフェースまたはサブクラスとして記録されるクラスまたはインタフェースCごとに、C(現在のClassオブジェクトの「定義クラス・ローダー」の使用)のClassオブジェクトを取得しようとします。 取得可能で、このクラスまたはインタフェースの直接のサブインタフェースまたはサブクラスであるClassオブジェクトは、返される配列の要素によって示されます。Classオブジェクトを取得できない場合は、暗黙的に無視され、結果配列には含まれません。- 戻り値:
 - このクラスまたはインタフェースの許可されたサブクラスの
Classオブジェクトの配列。このクラスまたはインタフェースがシールされていない場合はnull。 - throws:
 SecurityException- セキュリティ・マネージャsが存在し、呼出し側クラス・ローダーが、返されたクラスと同じでないか、そのクラスのクラス・ローダーの上位クラスではない場合、s.checkPackageAccess()の呼出しは、返された配列内の任意のクラスのパッケージへのアクセスを拒否します。- Java言語仕様を参照してください:
 - 
8.1 クラス宣言
9.1 インタフェース宣言 - 導入されたバージョン:
 - 17
 
 - 
isSealed
public boolean isSealed()このClassオブジェクトがシール済クラスまたはインタフェースを表す場合にのみ、trueを返します。 このClassオブジェクトがプリミティブ型、voidまたは配列型を表す場合、このメソッドはfalseを返します。 シール済クラスまたはインタフェースには、(0(ゼロ))で許可されたサブクラスがあります。getPermittedSubclasses()は、シール済クラスまたはインタフェースに対してnull以外の空の値を返す可能性があります。- 戻り値:
 - この
Classオブジェクトがシール済クラスまたはインタフェースを表す場合のみtrue。 - Java言語仕様を参照してください:
 - 
8.1 クラス宣言
9.1 インタフェース宣言 - 導入されたバージョン:
 - 17
 
 
 -