- java.lang.Object
- 
- java.lang.Class<T>
 
- 
- 型パラメータ:
- T- この- Classオブジェクトでモデル化されるクラスの型。 たとえば、- String.classの型は- Class<String>である。 モデル化するクラスが不明な場合は- Class<?>を使用する。
 - すべての実装されたインタフェース:
- Serializable,- Constable,- TypeDescriptor,- TypeDescriptor.OfField<Class<?>>,- AnnotatedElement,- GenericDeclaration,- Type
 
 public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement, TypeDescriptor.OfField<Class<?>>, Constable Classクラスのインスタンスは、実行中のJavaアプリケーションのクラスおよびインタフェースを表します。 列挙型はクラスのタイプであり、注釈型はインタフェースのタイプです。 同様にどの配列も、同じ要素のタイプおよび次元数を持つすべての配列により共有されるClassオブジェクトとしてリフレクトされるクラスに属します。 プリミティブJava型(boolean、byte、char、short、int、long、float、およびdouble)やキーワードvoidも、Classオブジェクトとして表されます。Classには、publicコンストラクタはありません。 かわりに、クラス・ローダーがdefineClassメソッドのいずれかを起動してdefineClassファイルのバイトを渡すと、ClassオブジェクトがJava Virtual Machineによって自動的に作成されます。クラス Classのメソッドでは、クラスまたはインタフェースの多くの特性が公開されます。 ほとんどの特性は、クラス・ローダーがJava Virtual Machineに渡されたclassファイルから導出されます。 いくつかの特性は、getModule()によって返されたモジュールなど、実行時のクラス・ロード環境によって決まります。クラス Classの一部のメソッドでは、Javaソース・コードのクラスまたはインタフェースの宣言が別の宣言で「囲み」だったかどうかが公開されます。 他のメソッドは、クラスまたはインタフェースが「ネスト」にある状況を表します。 「ネスト」は、同じランタイム・パッケージ内のクラスとインタフェースのセットで、privateメンバーへの相互のアクセスを可能にします。 クラスおよびインタフェースは、nestmatesと呼ばれます。 1つのネストしたウィンドウは「ホストのネスト」の役割を果たし、他のネストしたコンテンツを列挙します。ネストしたホストとして各ネストします。 ネストしたクラス(ホストを含む)に属するクラスとインタフェースは、classファイルが生成されたときに判別されます。たとえば、Javaコンパイラでは通常、最上位クラスがネストのホストとして記録されます。ここでは、宣言が最上位クラス宣言で囲まれたクラスとインタフェースが他のメンバーになります。以下の例では、 Classオブジェクトを使ってオブジェクトのクラス名を出力します。void printClassName(Object obj) { System.out.println("The class of " + obj + " is " + obj.getClass().getName()); }クラス・リテラルを使って、名前付き型(またはvoid)のための Classオブジェクトを取得することもできます。 『Java™言語仕様』のセクション15.8.2を参照してください。 次に例を示します。System.out.println("The name of class Foo is: "+Foo.class.getName());- 導入されたバージョン:
- 1.0
- 関連項目:
- ClassLoader.defineClass(byte[], int, int), 直列化された形式
 
- 
- 
ネストされたクラスのサマリー- 
インタフェース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<?>arrayType()コンポーネント型がこのClassによって記述されている配列型のClassを返します。<U> Class<? extends U>asSubclass(クラス<U> clazz)指定されたクラス・オブジェクトによって表されるクラスのサブクラスを表すためにこのClassオブジェクトをキャストします。Tcast(Object obj)このClassオブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。Class<?>componentType()配列型を説明する場合は、Classのコンポーネント型を返します。それ以外の場合は、nullを返します。Optional<ClassDesc>describeConstable()このインスタンスの名目記述子を返します(作成可能な場合)、作成できない場合は空のOptionalを返します。StringdescriptorString()このクラスの型記述子文字列を返します。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(クラス<A> annotationClass)存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。Annotation[]getAnnotations()この要素に存在する注釈を返します。<A extends Annotation>
 A[]getAnnotationsByType(クラス<A> annotationClass)この要素に関連付けられている注釈を返します。StringgetCanonicalName()『Java言語仕様』の定義に従って、基本となるクラスの正規名を返します。Class<?>[]getClasses()このClassオブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClassオブジェクトを格納している配列を返します。ClassLoadergetClassLoader()クラスのクラス・ローダーを返します。Class<?>getComponentType()配列のコンポーネント型を表すClassを返します。Constructor<T>getConstructor(クラス<?>... parameterTypes)このClassオブジェクトが表すクラスの指定されたpublicコンストラクタをリフレクトするConstructorオブジェクトを返します。Constructor<?>[]getConstructors()このClassオブジェクトが表すクラスのすべてのpublicコンストラクタをリフレクトするConstructorオブジェクトを格納している配列を返します。<A extends Annotation>
 AgetDeclaredAnnotation(クラス<A> annotationClass)直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。Annotation[]getDeclaredAnnotations()この要素に直接存在する注釈を返します。<A extends Annotation>
 A[]getDeclaredAnnotationsByType(クラス<A> annotationClass)直接存在するか間接的に存在する場合は、この要素の指定された型の注釈を返します。Class<?>[]getDeclaredClasses()このClassオブジェクトが表すクラスのメンバーとして宣言されたすべてのクラスおよびインタフェースをリフレクトするClassオブジェクトの配列を返します。Constructor<T>getDeclaredConstructor(クラス<?>... 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として返します。Class<?>getNestHost()このClassオブジェクトが表すクラスまたはインタフェースが属する「ネスト」のネストされたホストを返します。Class<?>[]getNestMembers()このClassオブジェクトが属する、ネストされたクラスまたはインタフェースのメンバーであるすべてのクラスおよびインタフェースを表すClassオブジェクトを含む配列を返します。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(クラス<?> cls)このClassオブジェクトが表すクラスまたはインタフェースが、指定されたClassパラメータが表すクラスまたはインタフェースと等しいかどうか、あるいはそのスーパー・クラスあるいはスーパー・インタフェースであるかどうかを判定します。booleanisEnum()このクラスがソース・コードでenumとして宣言された場合だけtrueを返します。booleanisInstance(Object obj)指定されたObjectが、このClassが表すオブジェクトと代入互換の関係にあるかどうかを判定します。booleanisInterface()指定されたClassオブジェクトがインタフェース型を表すかどうかを判定します。booleanisLocalClass()基本となるクラスがローカル・クラスである場合だけtrueを返します。booleanisMemberClass()基本となるクラスがメンバー・クラスである場合だけtrueを返します。booleanisNestmateOf(クラス<?> c)指定されたClassが、このClassオブジェクトによって表されるクラスまたはインタフェースをネストしたものであるかどうかを判定します。booleanisPrimitive()指定されたClassオブジェクトがプリミティブ型を表すかどうかを判定します。booleanisSynthetic()このクラスが合成クラスである場合はtrueを返し、そうでない場合はfalseを返します。TnewInstance()非推奨。このメソッドは、チェック例外を含むnullaryコンストラクタによってスローされた例外をすべて伝播します。StringtoGenericString()修飾子と型パラメータに関する情報を含む、このClassを記述する文字列を返します。StringtoString()オブジェクトを文字列に変換します。
 
- 
- 
- 
メソッドの詳細- 
toStringpublic String toString() オブジェクトを文字列に変換します。 その文字列は、classまたはinterfaceなどの文字列、空白、getNameが返す形式の完全指定クラス名という順序で表現されます。 このClassオブジェクトがプリミティブ型を表す場合、このメソッドはプリミティブ型の名前を返します。 このClassオブジェクトがvoidを表す場合は、voidを返します。 このClassオブジェクトが配列型を表す場合、このメソッドは"class"とそれに続くgetNameを返します。
 - 
toGenericStringpublic String toGenericString() 修飾子と型パラメータに関する情報を含む、このClassを記述する文字列を返します。 この文字列は、データ型の修飾子のリストとして書式設定されます。そのあとに(プリミティブ・タイプの空の文字列、必要に応じて、class、enum、interfaceまたは@interface)タイプのタイプのタイプのタイプのタイプのタイプがある場合は、そのタイプ・パラメータのカンマ区切りのリスト(存在する場合)が続きます。 修飾子同士、およびいずれかの修飾子と型の種類との区切りには空白が1つ使用されます。 修飾子は正規の順序で返されます。 型パラメータがない場合、型パラメータのリストは省略されます。 配列型の場合、文字列は型名で始まり、型のパラメータがあればカンマで区切られた角括弧で区切られたリストが続き、配列のディメンションごとに1組の[]文字のシーケンスが続きます。型の実行時表現に関する情報が生成されるため、元のソース・コードにない修飾子または元のソース・コードで不正な修飾子が存在する可能性があることに注意してください。 - 戻り値:
- 修飾子と型パラメータに関する情報を含む、このClassを記述する文字列
- 導入されたバージョン:
- 1.8
 
 - 
forNamepublic 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- クラスが見つからなかった場合
 
 - 
forNamepublic 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
 
 - 
forNamepublic static Class<?> forName(Module module, String name) 与えられたモジュール内の与えられた「バイナリ名」を持つClassを返します。このメソッドは、クラスまたはインタフェースの検索、ロード、リンクを試みます。 クラス初期化子は実行されません。 クラスが見つからない場合、このメソッドは nullを返します。指定されたモジュールのクラス・ローダーが他のモジュールを定義し、指定された名前が別のモジュールで定義されたクラスである場合、このメソッドはクラスがロードされた後に nullを返します。このメソッドは、リクエストされたクラスが呼び出し元からアクセス可能かどうかをチェックしません。 - APIの注:
- このメソッドは、forName(String, boolean, ClassLoader)メソッドのように、ClassNotFoundExceptionをスローするのではなく、失敗した場合にnullを返します。 セキュリティ・チェックは、呼び出し側が別のモジュール内のクラスをロードする場合、スタック・ベースの許可チェックです。
- パラメータ:
- module- モジュール
- name- クラスのバイナリ名
- 戻り値:
- Class与えられたモジュールで定義されている指定された名前のオブジェクト。- nullが見つからない場合。
- 例外:
- NullPointerException- 指定されたモジュールまたは名前が- null
- LinkageError- リンケージに失敗した場合
- SecurityException--  呼び出し元が指定されたモジュールではなく、RuntimePermission("getClassLoader")パーミッションが拒否された場合。または
-  モジュール・コンテンツへのアクセスは拒否されます。 たとえば、クラス・ローダーがモジュール内のクラス・ファイルのバイトを読み取るためにModuleReader.open(String)を呼び出すと、パーミッション・チェックが実行されます。
 
-  呼び出し元が指定されたモジュールではなく、
- 導入されたバージョン:
- 9
 
 - 
newInstance@Deprecated(since="9") public T newInstance() throws InstantiationException, IllegalAccessException 非推奨。このメソッドは、チェック例外を含むnullaryコンストラクタによってスローされた例外をすべて伝播します。 このメソッドを使用することで、その他の場合にはコンパイラによって実行されるコンパイル時の例外確認を効果的にバイパスできます。Constructor.newInstanceメソッドはこの問題を回避するため、コンストラクタからスローされる任意の例外を、(チェックされる)InvocationTargetException内にラップします。呼び出し 
 は、次のもので置き換えることができますclazz.newInstance()
 後者の呼び出しシーケンスは、追加の例外型clazz.getDeclaredConstructor().newInstance()InvocationTargetExceptionとNoSuchMethodExceptionをスローすることができると推測されます。 これらの例外タイプはどちらもReflectiveOperationExceptionのサブクラスです。このClassオブジェクトが表すクラスの新しいインスタンスを作成します。new式に空の引数リストを指定した場合と同じように、クラスのインスタンスが生成されます。 クラスは、初期化されていなければ初期化されます。- 戻り値:
- このオブジェクトが表す、クラスの新しく割り当てられたインスタンス
- 例外:
- IllegalAccessException- クラスまたはその引数なしのコンストラクタにアクセスできない場合。
- InstantiationException- この- Classが抽象クラス、インタフェース、配列クラス、プリミティブ型、またはvoidを表す場合、クラスが引数なしのコンストラクタを保持しない場合、あるいはインスタンスの生成がほかの理由で失敗した場合。
- ExceptionInInitializerError- このメソッドによる初期化に失敗した場合。
- SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先と- s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合
 
 - 
isInstancepublic 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
 
 - 
isAssignableFrompublic 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
 
 - 
isInterfacepublic boolean isInterface() 指定されたClassオブジェクトがインタフェース型を表すかどうかを判定します。- 戻り値:
- このオブジェクトがインタフェースを表す場合はtrue、そうでない場合はfalse。
 
 - 
isArraypublic boolean isArray() このClassオブジェクトが配列クラスを表すかどうかを判定します。- 定義:
- インタフェースTypeDescriptor.OfField<T>内のisArray
- 戻り値:
- このオブジェクトが配列クラスを表す場合はtrue、そうでない場合はfalse。
- 導入されたバージョン:
- 1.1
 
 - 
isPrimitivepublic 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
- 関連項目:
- Boolean.TYPE,- Character.TYPE,- Byte.TYPE,- Short.TYPE,- Integer.TYPE,- Long.TYPE,- Float.TYPE,- Double.TYPE,- Void.TYPE
 
 - 
isAnnotationpublic boolean isAnnotation() Classオブジェクトが注釈型を表す場合はtrueを返します。 すべての注釈型はインタフェースでもあるので、このメソッドがtrueを返すと、isInterface()もtrueを返します。- 戻り値:
- このクラス・オブジェクトが注釈型を表す場合はtrue、それ以外の場合はfalse
- 導入されたバージョン:
- 1.5
 
 - 
isSyntheticpublic boolean isSynthetic() このクラスが合成クラスである場合はtrueを返し、そうでない場合はfalseを返します。- 戻り値:
- このクラスが『Java言語仕様』で定義されている合成クラスである場合に限り、true。
- 導入されたバージョン:
- 1.5
- Java™言語仕様:
- 13.1 バイナリの形式
 
 - 
getNamepublic String getName() このClassオブジェクトが表すエンティティ(クラス、インタフェース、配列クラス、プリミティブ型、またはvoid)の名前を、Stringとして返します。『Java™言語仕様』で規定されているように、このクラス・オブジェクトが配列型ではない参照型を表す場合は、クラスのバイナリ名が返されます。 このクラス・オブジェクトがプリミティブ型またはvoidを表す場合、返される名前はプリミティブ型またはvoidに対応するJava言語キーワードと等価な Stringです。このクラス・オブジェクトが配列のクラスを表す場合、名前の内部形式は、配列の入れ子の深さを表す1つ以上の [文字、要素のタイプの名前という順序で構成されます。 要素のタイプの名前のエンコーディングは、次のとおりです。要素のタイプ Encoding 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"- 戻り値:
- このオブジェクトが表すクラスまたはインタフェースの名前。
 
 - 
getClassLoaderpublic ClassLoader getClassLoader() クラスのクラス・ローダーを返します。 実装によっては、nullを使ってブートストラップ・クラス・ローダーを表すこともできます。 このメソッドは、このクラスがブートストラップ・クラス・ローダーでロードされた場合に、そのような実装でnullを返します。このオブジェクトがプリミティブ型またはvoidを表す場合は、nullが返されます。 - 戻り値:
- このオブジェクトが表すクラスまたはインタフェースをロードしたクラス・ローダー
- 例外:
- SecurityException- セキュリティ・マネージャが存在し、呼び出し側クラス・ローダーが- nullでなく、クラス・ローダーがリクエストされたクラスのクラス・ローダーと同じでもなく、祖先でもなく、呼び出し元に- RuntimePermission- ("getClassLoader")がない場合
- 関連項目:
- ClassLoader,- SecurityManager.checkPermission(java.security.Permission),- RuntimePermission
 
 - 
getModulepublic Module getModule() このクラスまたはインタフェースがメンバーであるモジュールを返します。 このクラスが配列型を表す場合、このメソッドは要素型のModuleを返します。 このクラスがプリミティブ型またはvoidを表す場合は、java.baseモジュールのModuleオブジェクトが返されます。 このクラスが名前のないモジュールにある場合、このクラスのクラス・ローダーの「名前なし」Moduleが返されます。- 戻り値:
- このクラスまたはインタフェースがメンバーであるモジュール
- 導入されたバージョン:
- 9
 
 - 
getTypeParameterspublic TypeVariable<Class<T>>[] getTypeParameters() GenericDeclarationオブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariableオブジェクトの配列を宣言順に返します。 基になるジェネリック宣言で型変数が宣言されていない場合は、長さ0の配列が返されます。- 定義:
- getTypeParameters、インタフェース:- GenericDeclaration
- 戻り値:
- このジェネリック宣言で宣言された型変数を表すTypeVariableオブジェクトの配列
- 例外:
- GenericSignatureFormatError- このジェネリック宣言のジェネリック・シグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合
- 導入されたバージョン:
- 1.5
 
 - 
getSuperclasspublic Class<? super T> getSuperclass() このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型またはvoid)の直接スーパークラスを表すClassを返します。 このClassが、Objectクラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。 このオブジェクトが配列クラスを表す場合は、Objectクラスを表すClassオブジェクトが返されます。- 戻り値:
- このオブジェクトが表すクラスの直接スーパークラス
 
 - 
getGenericSuperclasspublic Type getGenericSuperclass() このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型、またはvoid)の直接のスーパー・クラスを表すTypeを返します。スーパー・クラスがパラメータ化された型の場合、返される Typeオブジェクトは、ソース・コードで使用される実際の型パラメータを反映しなければいけません。 スーパー・クラスを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。 パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedTypeの宣言を参照してください。 このClassが、Objectクラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。 このオブジェクトが配列クラスを表す場合は、Objectクラスを表すClassオブジェクトが返されます。- 戻り値:
- このオブジェクトが表すクラスの直接スーパークラス
- 例外:
- GenericSignatureFormatError- ジェネリック・クラスのシグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合
- TypeNotPresentException- ジェネリック・スーパークラスが、存在しない型宣言を参照する場合
- MalformedParameterizedTypeException- ジェネリック・スーパークラスが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合
- 導入されたバージョン:
- 1.5
 
 - 
getPackagepublic Package getPackage() このクラスのパッケージを取得します。このクラスがプリミティブ型またはvoidの配列型を表す場合、このメソッドは nullを返します。- 戻り値:
- このクラスのパッケージ。
 
 - 
getPackageNamepublic String getPackageName() 完全修飾パッケージ名を返します。このクラスがトップレベルのクラスである場合、このメソッドはクラスが所属するパッケージの完全修飾名を返します。クラスが名前のないパッケージにある場合は空の文字列を返します。 このクラスがメンバー・クラスである場合、このメソッドは「囲みクラス」上で getPackageName()を呼び出すことに相当します。このクラスが「ローカル・クラス」または「匿名クラス」である場合、このメソッドは「囲みメソッド」または「包含コンストラクタ」の「宣言クラス」で「宣言クラス」を呼び出すことと同等です。 このクラスが配列型を表す場合、このメソッドは要素型のパッケージ名を返します。 このクラスがプリミティブ型またはvoidを表す場合は、パッケージ名" java.lang"が返されます。- 戻り値:
- 完全修飾パッケージ名
- 導入されたバージョン:
- 9
- Java™言語仕様:
- 6.7 完全修飾名
 
 - 
getInterfacespublic 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インタフェースはその順序で返されます。- 戻り値:
- このクラスによって直接実装されるインタフェースの配列
 
 - 
getGenericInterfacespublic Type[] getGenericInterfaces() このオブジェクトによって表されるインタフェースまたはクラスによって直接実装されるインタフェースを表すTypeを返します。スーパー・インタフェースがパラメータ化された型の場合、返される Typeオブジェクトは、ソース・コードで使用される実際の型パラメータを反映しなければいけません。 スーパー・インタフェースを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。 パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedTypeの宣言を参照してください。このオブジェクトがクラスを表す場合、戻り値はクラスによって直接実装されたすべてのインタフェースを表すオブジェクトを含む配列です。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すクラスを宣言する implements節内のインタフェース名の順序に一致します。このオブジェクトがインタフェースを表す場合、そのインタフェースによって直接拡張されたすべてのインタフェースを表すオブジェクトが配列内に入ります。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すインタフェースを宣言する extends節内のインタフェース名の順序に一致します。このオブジェクトがインタフェースを実装しないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。 このオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドは長さが0の配列を返します。 この Classオブジェクトが配列型を表す場合、Cloneableインタフェースとjava.io.Serializableインタフェースはその順序で返されます。- 戻り値:
- このクラスによって直接実装されるインタフェースの配列
- 例外:
- GenericSignatureFormatError- ジェネリック・クラスのシグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合
- TypeNotPresentException- ジェネリック・スーパーインタフェースのどれかが、存在しない型宣言を参照する場合
- MalformedParameterizedTypeException- ジェネリック・スーパーインタフェースのどれかが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合
- 導入されたバージョン:
- 1.5
 
 - 
getComponentTypepublic Class<?> getComponentType() 配列のコンポーネント型を表すClassを返します。 このクラスが配列クラスを表さない場合、このメソッドはnullを返します。- 戻り値:
- このクラスが配列の場合、このクラスのコンポーネント型を示すClass
- 導入されたバージョン:
- 1.1
- 関連項目:
- Array
 
 - 
getModifierspublic 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
 
 - 
getSignerspublic Object[] getSigners() このクラスの署名者を取得します。- 戻り値:
- このクラスの署名者。署名者がない場合はnull。 特にこのメソッドは、このオブジェクトがプリミティブ型またはvoidを表す場合にはnullを返す。
- 導入されたバージョン:
- 1.1
 
 - 
getEnclosingMethodpublic Method getEnclosingMethod() throws SecurityException このClassオブジェクトが、メソッド内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表すMethodオブジェクトを返します。 それ以外の場合はnullを返します。 特に、基本となるクラスが、型宣言、インスタンス初期化子、または静的初期化子により直接囲まれるローカル・クラスまたは匿名クラスである場合、このメソッドはnullを返します。- 戻り値:
- クラスがローカル・クラスまたは匿名クラスの場合、基本となるクラスを直接囲むメソッド。そうでない場合はnull。
- 例外:
- SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが囲むクラス内のメソッドへのアクセスを許可しない
-  呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しが囲むクラスのパッケージへのアクセスを許可しない
 
-  呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.5
 
 - 
getEnclosingConstructorpublic Constructor<?> getEnclosingConstructor() throws SecurityException このClassオブジェクトが、コンストラクタ内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表すConstructorオブジェクトを返します。 それ以外の場合はnullを返します。 特に、基本となるクラスが、型宣言、インスタンス初期化子、または静的初期化子により直接囲まれるローカル・クラスまたは匿名クラスである場合、このメソッドはnullを返します。- 戻り値:
- クラスがローカル・クラスまたは匿名クラスの場合、基本となるクラスを直接囲むコンストラクタ。そうでない場合はnull。
- 例外:
- SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが囲むクラス内のコンストラクタへのアクセスを許可しない
-  呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しが囲むクラスのパッケージへのアクセスを許可しない
 
-  呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.5
 
 - 
getDeclaringClasspublic Class<?> getDeclaringClass() throws SecurityException このClassオブジェクトが表すクラスまたはインタフェースが別のクラスのメンバーの場合は、それが宣言されたクラスを表すClassオブジェクトを返します。 このクラスまたはインタフェースがほかのクラスのメンバーでない場合は、nullを返します。 このClassオブジェクトが配列クラス、プリミティブ型、またはvoidを表す場合、このメソッドはnullを返します。- 戻り値:
- このクラスを宣言するクラス
- 例外:
- SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、宣言しているクラスのクラス・ローダーの祖先と- s.checkPackageAccess()の呼出しが宣言しているクラスのパッケージへのアクセスを許可しない場合
- 導入されたバージョン:
- 1.1
 
 - 
getEnclosingClasspublic Class<?> getEnclosingClass() throws SecurityException 基本となるクラスを直接囲むクラスを返します。 基本となるクラスがトップレベル・クラスである場合、nullを返します。- 戻り値:
- 基本となるクラスを直接囲むクラス
- 例外:
- SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先と- s.checkPackageAccess()の呼出しが囲むクラスのパッケージへのアクセスを許可しない場合
- 導入されたバージョン:
- 1.5
 
 - 
getSimpleNamepublic String getSimpleName() ソース・コード内で指定されたとおり、基本となるクラスの単純名を返します。 基本となるクラスが匿名の場合、空の文字列を返します。配列の単純名は、[]が付加されたコンポーネント型の単純名です。 特に、コンポーネント型が匿名である配列の単純名は、[]です。 - 戻り値:
- 基本となるクラスの単純名
- 導入されたバージョン:
- 1.5
 
 - 
getTypeNamepublic String getTypeName() この型の名前に関する情報提供文字列を返します。- 定義:
- getTypeName、インタフェース:- Type
- 戻り値:
- この型の名前を表す情報文字列
- 導入されたバージョン:
- 1.8
 
 - 
getCanonicalNamepublic String getCanonicalName() 『Java言語仕様』の定義に従って、基本となるクラスの正規名を返します。 基本となるクラスが正規名を持たない場合(ローカル・クラスや匿名クラス、またはコンポーネント型が正規名を持たない配列の場合)、nullを返します。- 戻り値:
- 存在する場合は基本となるクラスの正規名。そうでない場合はnull。
- 導入されたバージョン:
- 1.5
 
 - 
isAnonymousClasspublic boolean isAnonymousClass() 基本となるクラスが匿名クラスである場合だけtrueを返します。- 戻り値:
- このクラスが匿名クラスである場合だけtrue。
- 導入されたバージョン:
- 1.5
 
 - 
isLocalClasspublic boolean isLocalClass() 基本となるクラスがローカル・クラスである場合だけtrueを返します。- 戻り値:
- このクラスがローカル・クラスである場合だけtrue。
- 導入されたバージョン:
- 1.5
 
 - 
isMemberClasspublic boolean isMemberClass() 基本となるクラスがメンバー・クラスである場合だけtrueを返します。- 戻り値:
- このクラスがメンバー・クラスである場合だけtrue。
- 導入されたバージョン:
- 1.5
 
 - 
getClassespublic Class<?>[] getClasses() このClassオブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClassオブジェクトを格納している配列を返します。 スーパー・クラスから継承したpublicクラスおよびインタフェースのメンバー、ならびにクラスが宣言したpublicクラスとインタフェースのメンバーも含まれます。 このClassオブジェクトがpublicメンバー・クラスやインタフェースを持たない場合、このメソッドは長さが0の配列を返します。 また、このClassオブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合も、このメソッドは長さが0の配列を返します。- 戻り値:
- このクラスのpublicメンバーを表すClassオブジェクトの配列
- 例外:
- SecurityException- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先と- s.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合
- 導入されたバージョン:
- 1.1
 
 - 
getFieldspublic 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 フィールド宣言
 
 - 
getMethodspublic 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 メソッド宣言
 
-  メソッドの組合は以下のもので構成される:
   
 - 
getConstructorspublic 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
 
 - 
getFieldpublic 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 フィールド宣言
 
 - 
getMethodpublic 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 メソッド宣言
 
-  メソッドの組合は以下のもので構成される:
   
 - 
getConstructorpublic 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
 
 - 
getDeclaredClassespublic Class<?>[] getDeclaredClasses() throws SecurityException このClassオブジェクトが表すクラスのメンバーとして宣言されたすべてのクラスおよびインタフェースをリフレクトするClassオブジェクトの配列を返します。 これには、クラスが宣言したpublic、protected、デフォルト(package)アクセス、およびprivateクラスとインタフェースは含まれますが、継承クラスとインタフェースは含まれません。 このメソッドは、クラスがメンバーとしてクラスまたはインタフェースを宣言していない場合や、このClassオブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合には、長さが0の配列を返します。- 戻り値:
- このクラスの宣言されたすべてのメンバーを表すClassオブジェクトの配列
- 例外:
- SecurityException- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたクラスへのアクセスを許可しない
-  呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない
 
-  呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつ
- 導入されたバージョン:
- 1.1
 
 - 
getDeclaredFieldspublic 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 フィールド宣言
 
 - 
getDeclaredMethodspublic 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 メソッド宣言
 
 - 
getDeclaredConstructorspublic 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
 
 - 
getDeclaredFieldpublic 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 フィールド宣言
 
 - 
getDeclaredMethodpublic 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 メソッド宣言
 
 - 
getDeclaredConstructorpublic 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
 
 - 
getResourceAsStreampublic 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)
 
-  
 - 
getResourcepublic 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
 
-  
 - 
getProtectionDomainpublic ProtectionDomain getProtectionDomain() このクラスのProtectionDomainを返します。 セキュリティ・マネージャがインストールされていると、このメソッドはまずセキュリティ・マネージャのcheckPermissionメソッドをRuntimePermission("getProtectionDomain")アクセス権を使って呼び出すことによってProtectionDomainを問題なく取得できることを確認します。- 戻り値:
- このクラスのProtectionDomain
- 例外:
- SecurityException- セキュリティ・マネージャが存在し、その- checkPermissionメソッドがProtectionDomainの取得を許可しない場合。
- 導入されたバージョン:
- 1.2
- 関連項目:
- ProtectionDomain,- SecurityManager.checkPermission(java.security.Permission),- RuntimePermission
 
 - 
desiredAssertionStatuspublic boolean desiredAssertionStatus() このメソッドの呼出し時にこのクラスを初期化する場合、クラスに割り当てられるアサーション・ステータスを返します。 このクラスのアサーション・ステータスが設定されている場合は、最新設定が返されます。それ以外の場合で、このクラスに関連するパッケージのデフォルトのアサーション・ステータスが存在するときは、最適なパッケージのデフォルトのアサーション・ステータスの最新設定が返されます。それ以外の場合で、このクラスがシステム・クラスでない(つまりクラス・ローダーを保持する)ときは、クラス・ローダーのデフォルトのアサーション・ステータスが返されます。それ以外の場合、システム・クラスのデフォルトのアサーション・ステータスが返されます。これはJRE自体で使用するためのメソッドであるため、プログラマがこのメソッドを必要とすることはほとんどありません (このメソッドにより、初期化時にアサーションが有効にするかどうかをクラスが判別できる)。 指定されたクラスの初期化時に、このメソッドが、指定されたクラスに関連付けられた実際のアサーション・ステータスを返すとは限らないことに留意してください。 - 戻り値:
- 対象とする、指定されたクラスのアサーション・ステータス
- 導入されたバージョン:
- 1.4
- 関連項目:
- ClassLoader.setClassAssertionStatus(java.lang.String, boolean),- ClassLoader.setPackageAssertionStatus(java.lang.String, boolean),- ClassLoader.setDefaultAssertionStatus(boolean)
 
 - 
isEnumpublic boolean isEnum() このクラスがソース・コードでenumとして宣言された場合だけtrueを返します。- 戻り値:
- このクラスがソース・コードでenumとして宣言された場合だけtrue
- 導入されたバージョン:
- 1.5
 
 - 
getEnumConstantspublic T[] getEnumConstants() このenumクラスの要素を返すか、このClassオブジェクトがenum型を表さない場合はnullを返します。- 戻り値:
- このClassオブジェクトで表されたenumクラスで構成される値が格納されている配列(宣言された順)。このClassオブジェクトがenum型を表さない場合はnull
- 導入されたバージョン:
- 1.5
 
 - 
castpublic T cast(Object obj) このClassオブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。- パラメータ:
- obj- キャストされるオブジェクト
- 戻り値:
- キャスト後のオブジェクト。オブジェクトがnullの場合はnull
- 例外:
- ClassCastException- オブジェクトがnull以外であり、型Tに割り当てられない場合。
- 導入されたバージョン:
- 1.5
 
 - 
asSubclasspublic <U> Class<? extends U> asSubclass(Class<U> clazz) 指定されたクラス・オブジェクトによって表されるクラスのサブクラスを表すためにこのClassオブジェクトをキャストします。 キャストが有効であることを確認し、有効でない場合はClassCastExceptionをスローします。 このメソッドが成功すると、このクラス・オブジェクトへの参照を返します。このメソッドは、受け取る側の Classオブジェクトを制限するAPIに渡すために、クライアントがClassオブジェクトの型をナロー変換する必要がある場合に役立ちます。 (ジェネリック型はイレイジャによって実装されるので)キャストの正確性を実行時に確認することはできないため、キャストによってコンパイル時の警告が生成されます。- 型パラメータ:
- U- このクラス・オブジェクトがキャストされる型
- パラメータ:
- clazz- このクラス・オブジェクトがキャストされる型のクラス
- 戻り値:
- 指定されたクラス・オブジェクトのサブクラスを表すためにキャストされた、このClassオブジェクト。
- 例外:
- ClassCastException- この- Classオブジェクトが指定されたクラスのサブクラスを表さない場合(サブクラスはクラス自体を含む)。
- 導入されたバージョン:
- 1.5
 
 - 
getAnnotationpublic <A extends Annotation> A getAnnotation(Class<A> annotationClass) インタフェースからコピーされた説明:AnnotatedElement存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。- 定義:
- getAnnotation、インタフェース:- AnnotatedElement
- 型パラメータ:
- A- 問合せの対象であり、存在する場合に返される注釈の型
- パラメータ:
- annotationClass- 注釈型に対応するClassオブジェクト
- 戻り値:
- 存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
- 例外:
- NullPointerException- 指定された注釈クラスがnullの場合
- 導入されたバージョン:
- 1.5
 
 - 
isAnnotationPresentpublic boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) 指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。 このメソッドは、主にマーカー注釈への簡易アクセスを目的に設計されています。このメソッドによって返されるtrue値は、 getAnnotation(annotationClass) != nullと同等です。デフォルト・メソッドの本体は、前述のコードとして指定されています。 - 定義:
- isAnnotationPresent、インタフェース:- AnnotatedElement
- パラメータ:
- annotationClass- 注釈型に対応するClassオブジェクト
- 戻り値:
- 指定された注釈型の注釈がこの要素に存在する場合はtrue、そうでない場合はfalse
- 例外:
- NullPointerException- 指定された注釈クラスがnullの場合
- 導入されたバージョン:
- 1.5
 
 - 
getAnnotationsByTypepublic <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
 
 - 
getAnnotationspublic Annotation[] getAnnotations() インタフェースからコピーされた説明:AnnotatedElementこの要素に存在する注釈を返します。 この要素に存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
- getAnnotations、インタフェース:- AnnotatedElement
- 戻り値:
- この要素に存在する注釈
- 導入されたバージョン:
- 1.5
 
 - 
getDeclaredAnnotationpublic <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass) インタフェースからコピーされた説明:AnnotatedElement直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。 このメソッドは継承された注釈を無視します。 (この要素に直接存在する注釈がない場合は、nullを返します。)- 定義:
- getDeclaredAnnotation、インタフェース:- AnnotatedElement
- 型パラメータ:
- A- 問合せの対象であり、直接存在する場合に返される注釈の型
- パラメータ:
- annotationClass- 注釈型に対応するClassオブジェクト
- 戻り値:
- 直接存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
- 例外:
- NullPointerException- 指定された注釈クラスがnullの場合
- 導入されたバージョン:
- 1.8
 
 - 
getDeclaredAnnotationsByTypepublic <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
 
 - 
getDeclaredAnnotationspublic Annotation[] getDeclaredAnnotations() インタフェースからコピーされた説明:AnnotatedElementこの要素に直接存在する注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。- 定義:
- getDeclaredAnnotations、インタフェース:- AnnotatedElement
- 戻り値:
- この要素に直接存在する注釈
- 導入されたバージョン:
- 1.5
 
 - 
getAnnotatedSuperclasspublic AnnotatedType getAnnotatedSuperclass() Classオブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedTypeオブジェクトを返します。 (... extends Fooでスーパー・クラスを指定するためのFoo型の使用はFoo型の宣言とは異なります。)この Classオブジェクトが、宣言が注釈付きのスーパー・クラスを明示的に示さない型を表す場合、戻り値は注釈の付かない要素を表すAnnotatedTypeオブジェクトになります。この ClassがObjectクラス、インタフェース・タイプ、配列型、プリミティブ型、またはvoidを表す場合、戻り値はnullになります。- 戻り値:
- スーパー・クラスを表すオブジェクト
- 導入されたバージョン:
- 1.8
 
 - 
getAnnotatedInterfacespublic AnnotatedType[] getAnnotatedInterfaces() Classオブジェクトによって表されるエンティティのスーパーインタフェースを指定する型の使用を表すAnnotatedTypeオブジェクトの配列を返します。 (... implements Fooでスーパー・インタフェースを指定するためのFoo型の使用はFoo型の宣言とは異なります。)この Classオブジェクトがクラスを表す場合、戻り値は、そのクラスによって実装されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。 配列内のオブジェクトの順序は、このClassオブジェクトの宣言のimplements節で使用されるインタフェース・タイプの順序に一致します。この Classオブジェクトがインタフェースを表す場合、戻り値は、そのインタフェースによって直接拡張されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。 配列内のオブジェクトの順序は、このClassオブジェクトの宣言のextends節で使用されるインタフェース・タイプの順序に一致します。この Classオブジェクトが、宣言がいずれかの注釈付きスーパー・インタフェースを明示的に示さないクラスまたはインタフェースを表す場合、戻り値は長さが0の配列になります。この ClassオブジェクトがObjectクラス、配列型、プリミティブ型、またはvoidを表す場合、戻り値は長さが0の配列になります。- 戻り値:
- スーパー・インタフェースを表す配列
- 導入されたバージョン:
- 1.8
 
 - 
getNestHostpublic Class<?> getNestHost() このClassオブジェクトが表すクラスまたはインタフェースが属する「ネスト」のネストされたホストを返します。 クラスとインタフェースは、それぞれ1つのみのネストのメンバーです。 ネストに属するものとして記録されないクラスまたはインタフェースは、それ自体でのみ構成されるネストに属し、ネストされたホストです。配列のタイプ、プリミティブ型および voidを表すClassオブジェクトは、それぞれ自身で構成されるネストに属するエンティティであり、ネストされたホストであることを示すthisを返します。ネストされたホストにアクセスする「リンケージ・エラー」がある場合、またはネストされたホストによってネストのメンバーとしてこのクラスまたはインタフェースが列挙されていない場合は、その固有のネストに属しているとみなされ、 thisがホストとして戻されます。- APIの注:
- バージョン55.0以上のclassファイルでは、NestHost属性(JVMS 4.7.28)を使用して、所属するネストのホストを記録できます。 または、バージョン55.0以上のclassファイルは、NestMembers属性(JVMS 4.7.29)を持つ他のメンバーをネストすることで、ネストされたホストとして機能します。 バージョン54.0以下のclassファイルでは、これらの属性は使用されません。
- 戻り値:
- このクラスまたはインタフェースのネスト・ホスト
- 例外:
- SecurityException- 返されるクラスが現在のクラスではなく、セキュリティ・マネージャであるsが存在し、呼出し元のクラス・ローダーが返されるクラスのクラス・ローダーと- s.checkPackageAccess()の呼出しの上位または同じではない場合、返されるクラスのパッケージへのアクセスは拒否されます。
- 導入されたバージョン:
- 11
- Java™仮想マシン仕様:
- 4.7.28 4.7.29 NestHost属性とNestMembers属性, 5.4.4アクセス制御
 
 - 
isNestmateOfpublic boolean isNestmateOf(Class<?> c) 指定されたClassが、このClassオブジェクトによって表されるクラスまたはインタフェースをネストしたものであるかどうかを判定します。 2つのクラスまたはインタフェースが同じ「ホストのネスト」を持つ場合、それらはネストされます。- パラメータ:
- c- チェックするクラス
- 戻り値:
- このクラスとcが同じネストのメンバーである場合はtrue、それ以外の場合はfalse。
- 導入されたバージョン:
- 11
 
 - 
getNestMemberspublic Class<?>[] getNestMembers() このClassオブジェクトが属する、ネストされたクラスまたはインタフェースのメンバーであるすべてのクラスおよびインタフェースを表すClassオブジェクトを含む配列を返します。 そのネストの「ホストのネスト」は、配列のzeroth要素です。 その後の要素は、ネストされたホストによって、ネストされたメンバーとして記録されたクラスまたはインタフェースを表します。そのような要素の順序は指定されません。 重複は許可されます。 ネストされたホストがメンバーを列挙しない場合、配列にはthisを含む単一の要素が含まれます。配列のタイプ、プリミティブ型および voidを表す各Classオブジェクトは、thisのみを含む配列を返します。このメソッドは、ネスト・ホストによってネストのメンバーとして記録されるクラスまたはインタフェースごとに、そのクラスまたはインタフェースが同じネストのメンバーとしてそれ自体を記録することを検証します。 この検証中に発生した例外は、このメソッドによって再スローされます。 - 戻り値:
- このクラスと同じネストにあるすべてのクラスとインタフェースの配列
- 例外:
- LinkageError- ネストされたメンバーまたはそのネストされたホストのロードまたは検証に問題がある場合
- SecurityException- 返されるクラスが現在のクラスではない場合、およびセキュリティ・マネージャであるsが存在し、呼出し元のクラス・ローダーが、返されたクラスのクラス・ローダーと- s.checkPackageAccess()の呼出しの上位または同じではない場合、返されたクラスのパッケージへのアクセスは拒否されます。
- 導入されたバージョン:
- 11
- 関連項目:
- getNestHost()
 
 - 
descriptorStringpublic String descriptorString() このクラスの型記述子文字列を返します。これは、 forName(java.lang.String)の完全な逆ではありません。共通の名前を共有し、異なるクラス・ローダーを持つ個別のクラスには、同一の記述子文字列が含まれます。- 定義:
- インタフェースTypeDescriptor内のdescriptorString
- 戻り値:
- 型記述子の表現
- 導入されたバージョン:
- 12
- Java™仮想マシン仕様:
- 4.3.2フィールド記述子
 
 - 
componentTypepublic Class<?> componentType() 配列型を説明する場合は、Classのコンポーネント型を返します。それ以外の場合は、nullを返します。- 定義:
- インタフェースTypeDescriptor.OfField<T>内のcomponentType
- 実装要件:
- getComponentType()と同等です。
- 戻り値:
- Classはコンポーネント・タイプを説明します。または、- Classが配列型を記述しない場合は- null
- 導入されたバージョン:
- 12
 
 - 
arrayTypepublic Class<?> arrayType() コンポーネント型がこのClassによって記述されている配列型のClassを返します。- 定義:
- インタフェースTypeDescriptor.OfField<T>内のarrayType
- 戻り値:
- 配列型について説明するClass
- 導入されたバージョン:
- 12
 
 
- 
 
-