モジュール java.base
パッケージ java.lang

クラスClass<T>

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型(booleanbytecharshortintlongfloat、および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オブジェクトをキャストします。
    T cast​(Object obj)
    このClassオブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。
    Class<?> componentType()
    配列型を説明する場合は、Classのコンポーネント型を返します。それ以外の場合は、nullを返します。
    Optional<ClassDesc> describeConstable()
    このインスタンスの名目記述子を返します(作成可能な場合)、作成できない場合は空のOptionalを返します。
    String descriptorString()
    このクラスの型記述子文字列を返します。
    boolean desiredAssertionStatus()
    このメソッドの呼出し時にこのクラスを初期化する場合、クラスに割り当てられるアサーション・ステータスを返します。
    static Class<?> forName​(Module module, String name)
    与えられたモジュール内の与えられた「バイナリ名」を持つClassを返します。
    static Class<?> forName​(String className)
    指定された文字列名を持つクラスまたはインタフェースに関連付けられた、Classオブジェクトを返します。
    static Class<?> forName​(String name, boolean initialize, ClassLoader loader)
    指定されたクラス・ローダーを使って、指定された文字列名を持つクラスまたはインタフェースに関連付けられたClassオブジェクトを返します。
    AnnotatedType[] getAnnotatedInterfaces()
    Classオブジェクトによって表されるエンティティのスーパーインタフェースを指定する型の使用を表すAnnotatedTypeオブジェクトの配列を返します。
    AnnotatedType getAnnotatedSuperclass()
    Classオブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedTypeオブジェクトを返します。
    <A extends Annotation>
    A
    getAnnotation​(クラス<A> annotationClass)
    存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。
    Annotation[] getAnnotations()
    この要素に存在する注釈を返します。
    <A extends Annotation>
    A[]
    getAnnotationsByType​(クラス<A> annotationClass)
    この要素に関連付けられている注釈を返します。
    String getCanonicalName()
    『Java言語仕様』の定義に従って、基本となるクラスの正規名を返します。
    Class<?>[] getClasses()
    このClassオブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClassオブジェクトを格納している配列を返します。
    ClassLoader getClassLoader()
    クラスのクラス・ローダーを返します。
    Class<?> getComponentType()
    配列のコンポーネント型を表すClassを返します。
    Constructor<T> getConstructor​(クラス<?>... parameterTypes)
    このClassオブジェクトが表すクラスの指定されたpublicコンストラクタをリフレクトするConstructorオブジェクトを返します。
    Constructor<?>[] getConstructors()
    このClassオブジェクトが表すクラスのすべてのpublicコンストラクタをリフレクトするConstructorオブジェクトを格納している配列を返します。
    <A extends Annotation>
    A
    getDeclaredAnnotation​(クラス<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オブジェクトの配列を返します。
    Field getDeclaredField​(String name)
    このClassオブジェクトが表すクラスまたはインタフェースの、指定された宣言されたフィールドをリフレクトするFieldオブジェクトを返します。
    Field[] getDeclaredFields()
    このClassオブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするFieldオブジェクトの配列を返します。
    Method getDeclaredMethod​(String name, Class<?>... parameterTypes)
    このClassオブジェクトが表すクラスまたはインタフェースの、指定された宣言されたメソッドをリフレクトするMethodオブジェクトを返します。
    Method[] getDeclaredMethods()
    この Classオブジェクトによって表されるクラスまたはインタフェースのすべての宣言されたメソッドをリフレクトするMethodオブジェクトが格納された配列を返します。これには、public、protected、デフォルト(package)アクセスおよびprivateメソッドが含まれますが、継承されたメソッドは除外されます。
    Class<?> getDeclaringClass()
    このClassオブジェクトが表すクラスまたはインタフェースが別のクラスのメンバーの場合は、それが宣言されたクラスを表すClassオブジェクトを返します。
    Class<?> getEnclosingClass()
    基本となるクラスを直接囲むクラスを返します。
    Constructor<?> getEnclosingConstructor()
    このClassオブジェクトが、コンストラクタ内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表すConstructorオブジェクトを返します。
    Method getEnclosingMethod()
    このClassオブジェクトが、メソッド内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表すMethodオブジェクトを返します。
    T[] getEnumConstants()
    このenumクラスの要素を返すか、このClassオブジェクトがenum型を表さない場合はnullを返します。
    Field getField​(String name)
    このClassオブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・フィールドをリフレクトするFieldオブジェクトを返します。
    Field[] getFields()
    このClassオブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能なpublicフィールドをリフレクトする、Fieldオブジェクトを保持している配列を返します。
    Type[] getGenericInterfaces()
    このオブジェクトによって表されるインタフェースまたはクラスによって直接実装されるインタフェースを表すTypeを返します。
    Type getGenericSuperclass()
    このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型、またはvoid)の直接のスーパー・クラスを表すTypeを返します。
    Class<?>[] getInterfaces()
    このオブジェクトが表すクラスまたはインタフェースによって直接実装されているインタフェースを返します。
    Method getMethod​(String name, Class<?>... parameterTypes)
    このClassオブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・メソッドをリフレクトするMethodオブジェクトを返します。
    Method[] getMethods()
    この Classオブジェクトによって表されるクラスまたはインタフェースのすべてのpublicメソッドをリフレクトするMethodオブジェクトを格納している配列を返します。これには、クラスまたはインタフェースで宣言されたもの、およびスーパー・クラスやスーパー・インタフェースから継承されたものも含まれます。
    int getModifiers()
    このクラスまたはインタフェースのJava言語修飾子を整数型に符号化して返します。
    Module getModule()
    このクラスまたはインタフェースがメンバーであるモジュールを返します。
    String getName()
    このClassオブジェクトが表すエンティティ(クラス、インタフェース、配列クラス、プリミティブ型、またはvoid)の名前を、Stringとして返します。
    Class<?> getNestHost()
    このClassオブジェクトが表すクラスまたはインタフェースが属する「ネスト」のネストされたホストを返します。
    Class<?>[] getNestMembers()
    このClassオブジェクトが属する、ネストされたクラスまたはインタフェースのメンバーであるすべてのクラスおよびインタフェースを表すClassオブジェクトを含む配列を返します。
    Package getPackage()
    このクラスのパッケージを取得します。
    String getPackageName()
    完全修飾パッケージ名を返します。
    ProtectionDomain getProtectionDomain()
    このクラスのProtectionDomainを返します。
    URL getResource​(String name)
    指定された名前のリソースを探します。
    InputStream getResourceAsStream​(String name)
    指定された名前のリソースを探します。
    Object[] getSigners()
    このクラスの署名者を取得します。
    String getSimpleName()
    ソース・コード内で指定されたとおり、基本となるクラスの単純名を返します。
    Class<? super T> getSuperclass()
    このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型またはvoid)の直接スーパークラスを表すClassを返します。
    String getTypeName()
    この型の名前に関する情報提供文字列を返します。
    TypeVariable<Class<T>>[] getTypeParameters()
    GenericDeclarationオブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariableオブジェクトの配列を宣言順に返します。
    boolean isAnnotation()
    Classオブジェクトが注釈型を表す場合はtrueを返します。
    boolean isAnnotationPresent​(Class<? extends Annotation> annotationClass)
    指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。
    boolean isAnonymousClass()
    基本となるクラスが匿名クラスである場合だけtrueを返します。
    boolean isArray()
    このClassオブジェクトが配列クラスを表すかどうかを判定します。
    boolean isAssignableFrom​(クラス<?> cls)
    このClassオブジェクトが表すクラスまたはインタフェースが、指定されたClassパラメータが表すクラスまたはインタフェースと等しいかどうか、あるいはそのスーパー・クラスあるいはスーパー・インタフェースであるかどうかを判定します。
    boolean isEnum()
    このクラスがソース・コードでenumとして宣言された場合だけtrueを返します。
    boolean isInstance​(Object obj)
    指定されたObjectが、このClassが表すオブジェクトと代入互換の関係にあるかどうかを判定します。
    boolean isInterface()
    指定されたClassオブジェクトがインタフェース型を表すかどうかを判定します。
    boolean isLocalClass()
    基本となるクラスがローカル・クラスである場合だけtrueを返します。
    boolean isMemberClass()
    基本となるクラスがメンバー・クラスである場合だけtrueを返します。
    boolean isNestmateOf​(クラス<?> c)
    指定されたClassが、このClassオブジェクトによって表されるクラスまたはインタフェースをネストしたものであるかどうかを判定します。
    boolean isPrimitive()
    指定されたClassオブジェクトがプリミティブ型を表すかどうかを判定します。
    boolean isSynthetic()
    このクラスが合成クラスである場合はtrueを返し、そうでない場合はfalseを返します。
    T newInstance()
    非推奨。
    このメソッドは、チェック例外を含むnullaryコンストラクタによってスローされた例外をすべて伝播します。
    String toGenericString()
    修飾子と型パラメータに関する情報を含む、このClassを記述する文字列を返します。
    String toString()
    オブジェクトを文字列に変換します。

    クラス java.lang.Objectで宣言されたメソッド

    cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait
  • メソッドの詳細

    • toString

      public String toString()
      オブジェクトを文字列に変換します。 その文字列は、「class」または「interface」などの文字列、空白、getNameが返す形式の完全指定クラス名という順序で表現されます。 このClassオブジェクトがプリミティブ型を表す場合、このメソッドはプリミティブ型の名前を返します。 このClassオブジェクトがvoidを表す場合は、「void」を返します。 このClassオブジェクトが配列型を表す場合、このメソッドは"class"とそれに続くgetNameを返します。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      このオブジェクトの文字列表現
    • toGenericString

      public String toGenericString()
      修飾子と型パラメータに関する情報を含む、このClassを記述する文字列を返します。 この文字列は、データ型の修飾子のリストとして書式設定されます。そのあとに(プリミティブ・タイプの空の文字列、必要に応じて、classenuminterfaceまたは@interface)タイプのタイプのタイプのタイプのタイプのタイプがある場合は、そのタイプ・パラメータのカンマ区切りのリスト(存在する場合)が続きます。 修飾子同士、およびいずれかの修飾子と型の種類との区切りには空白が1つ使用されます。 修飾子は正規の順序で返されます。 型パラメータがない場合、型パラメータのリストは省略されます。 配列型の場合、文字列は型名で始まり、型のパラメータがあればカンマで区切られた角括弧で区切られたリストが続き、配列のディメンションごとに1組の[]文字のシーケンスが続きます。

      型の実行時表現に関する情報が生成されるため、元のソース・コードにない修飾子または元のソース・コードで不正な修飾子が存在する可能性があることに注意してください。

      戻り値:
      修飾子と型パラメータに関する情報を含む、このClassを記述する文字列
      導入されたバージョン:
      1.8
    • forName

      public static Class<?> forName​(String className) throws ClassNotFoundException
      指定された文字列名を持つクラスまたはインタフェースに関連付けられた、Classオブジェクトを返します。 このメソッドを呼び出すことは、次の記述に相当します。
      Class.forName(className, true, currentLoader)
      ここで、currentLoaderは、現在のクラスを定義するクラス・ローダーを示します。

      たとえば以下の記述は、java.lang.Threadという名前のクラスの実行時におけるClass記述子を返します。

      Class t = Class.forName("java.lang.Thread")

      forName("X")の呼出しによって、Xというクラスが初期化されます。

      パラメータ:
      className - 要求するクラスの完全指定の名前。
      戻り値:
      指定された名前を持つクラスのClassオブジェクト。
      例外:
      LinkageError - リンケージに失敗した場合
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合
      ClassNotFoundException - クラスが見つからなかった場合
    • forName

      public static Class<?> forName​(String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException
      指定されたクラス・ローダーを使って、指定された文字列名を持つクラスまたはインタフェースに関連付けられたClassオブジェクトを返します。 クラスまたはインタフェースの完全指定名を(getNameが返す形式と同じ形式で)指定すると、このメソッドはクラスまたはインタフェースを見つけ、ロードして、リンクしようとします。 クラスまたはインタフェースをロードする際には、指定されたクラス・ローダーが使用されます。 loaderパラメータがnullの場合、クラスはブートストラップ・クラス・ローダーを使ってロードされます。 クラスが初期化されるのは、initializeパラメータがtrueで、その初期化が以前に行われていない場合だけです。

      nameがプリミティブ型またはvoidを示す場合、無名パッケージ内でnameという名前のユーザー定義のクラスを見つけようとします。 このため、このメソッドを使って、プリミティブ型またはvoidを表すClassオブジェクトを取得することはできません。

      nameが配列クラスを示す場合、配列クラスのコンポーネント型はロードされますが、初期化されません。

      たとえば、インスタンス・メソッドでは、

      Class.forName("Foo")
      は、次と同じです。
      Class.forName("Foo", true, this.getClass().getClassLoader())
      ただし、このメソッドは、『Java言語仕様』のセクション12.2、12.3、12.4で指定された、ロード、リンク、または初期化に関連するエラーをスローします。 このメソッドは、要求されたクラスが呼出し側からアクセス可能であるかどうかをチェックしません。

      パラメータ:
      name - 要求するクラスの完全指定の名前
      initialize - trueの場合、そのクラスが初期化される。 Java言語仕様』のセクション12.4を参照してください。
      loader - クラスのロード元である必要があるクラス・ローダー
      戻り値:
      要求するクラスを表すクラス・オブジェクト
      例外:
      LinkageError - リンケージに失敗した場合
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合
      ClassNotFoundException - 指定されたクラス・ローダーによってクラスが見つからなかった場合
      SecurityException - セキュリティ・マネージャが存在し、loadernullで、呼び出し側クラス・ローダーがnullではなく、呼び出し元にRuntimePermission ("getClassLoader")がない場合
      導入されたバージョン:
      1.2
      関連項目:
      forName(String), ClassLoader
    • forName

      public static Class<?> forName​(Module module, String name)
      与えられたモジュール内の与えられた「バイナリ名」を持つClassを返します。

      このメソッドは、クラスまたはインタフェースの検索、ロード、リンクを試みます。 クラス初期化子は実行されません。 クラスが見つからない場合、このメソッドはnullを返します。

      指定されたモジュールのクラス・ローダーが他のモジュールを定義し、指定された名前が別のモジュールで定義されたクラスである場合、このメソッドはクラスがロードされた後にnullを返します。

      このメソッドは、リクエストされたクラスが呼び出し元からアクセス可能かどうかをチェックしません。

      APIの注:
      このメソッドは、forName(String, boolean, ClassLoader)メソッドのように、ClassNotFoundExceptionをスローするのではなく、失敗した場合にnullを返します。 セキュリティ・チェックは、呼び出し側が別のモジュール内のクラスをロードする場合、スタック・ベースの許可チェックです。
      パラメータ:
      module - モジュール
      name - クラスのバイナリ名
      戻り値:
      Class与えられたモジュールで定義されている指定された名前のオブジェクト。nullが見つからない場合。
      例外:
      NullPointerException - 指定されたモジュールまたは名前がnull
      LinkageError - リンケージに失敗した場合
      SecurityException -
      • 呼び出し元が指定されたモジュールではなく、RuntimePermission("getClassLoader")パーミッションが拒否された場合。または
      • モジュール・コンテンツへのアクセスは拒否されます。 たとえば、クラス・ローダーがモジュール内のクラス・ファイルのバイトを読み取るためにModuleReader.open(String)を呼び出すと、パーミッション・チェックが実行されます。
      導入されたバージョン:
      9
    • newInstance

      非推奨。
      このメソッドは、チェック例外を含むnullaryコンストラクタによってスローされた例外をすべて伝播します。 このメソッドを使用することで、その他の場合にはコンパイラによって実行されるコンパイル時の例外確認を効果的にバイパスできます。 Constructor.newInstanceメソッドはこの問題を回避するため、コンストラクタからスローされる任意の例外を、(チェックされる) InvocationTargetException内にラップします。

      呼び出し

      
       clazz.newInstance()
       
      は、次のもので置き換えることができます
      
       clazz.getDeclaredConstructor().newInstance()
       
      後者の呼び出しシーケンスは、追加の例外型InvocationTargetExceptionNoSuchMethodExceptionをスローすることができると推測されます。 これらの例外タイプはどちらもReflectiveOperationExceptionのサブクラスです。

      このClassオブジェクトが表すクラスの新しいインスタンスを作成します。 new式に空の引数リストを指定した場合と同じように、クラスのインスタンスが生成されます。 クラスは、初期化されていなければ初期化されます。
      戻り値:
      このオブジェクトが表す、クラスの新しく割り当てられたインスタンス
      例外:
      IllegalAccessException - クラスまたはその引数なしのコンストラクタにアクセスできない場合。
      InstantiationException - このClassが抽象クラス、インタフェース、配列クラス、プリミティブ型、またはvoidを表す場合、クラスが引数なしのコンストラクタを保持しない場合、あるいはインスタンスの生成がほかの理由で失敗した場合。
      ExceptionInInitializerError - このメソッドによる初期化に失敗した場合。
      SecurityException - セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合
    • isInstance

      public boolean isInstance​(Object obj)
      指定されたObjectが、このClassが表すオブジェクトと代入互換の関係にあるかどうかを判定します。 このメソッドは、Java言語のinstanceof演算子と動的に等価です。 指定されたObject引数がnullではなく、このClassオブジェクトが表す参照型にClassCastExceptionをスローすることなくキャストできる場合、このメソッドはtrueを返します。それ以外の場合はfalseを返します。

      特に、このClassオブジェクトが宣言クラスを表すときには、このメソッドは、指定されたObject引数が表現クラス(またはそのサブクラス)のインスタンスの場合にtrueを、そうでない場合にfalseを返します。 このClassオブジェクトが配列クラスを表すときには、恒等変換または拡張参照変換を用いて指定されたObject引数を配列クラスのオブジェクトに変換できる場合にtrueを、そうでない場合にfalseを返します。 このClassオブジェクトがインタフェースを表すときには、指定されたObject引数のクラスまたはスーパー・クラスがこのインタフェースを実装する場合にtrueを、そうでない場合にfalseを返します。 このClassオブジェクトがプリミティブ型を表す場合、このメソッドはfalseを返します。

      パラメータ:
      obj - チェック対象のオブジェクト
      戻り値:
      objがこのクラスのインスタンスの場合はtrue
      導入されたバージョン:
      1.1
    • isAssignableFrom

      public boolean isAssignableFrom​(クラス<?> cls)
      このClassオブジェクトが表すクラスまたはインタフェースが、指定されたClassパラメータが表すクラスまたはインタフェースと等しいかどうか、あるいはそのスーパー・クラスあるいはスーパー・インタフェースであるかどうかを判定します。 どちらかに当てはまる場合はtrueを、そうでない場合はfalseを返します。 このClassオブジェクトがプリミティブ型を表すときには、指定されたClassパラメータとこのClassオブジェクトが一致する場合にtrueを、そうでない場合にfalseを返します。

      特にこのメソッドは、指定されたClassパラメータが表現する型を、恒等変換または拡張参照変換を使って、このClassオブジェクトが表す型に変換できるかどうかを調べます。 詳細は、『Java言語仕様』のセクション5.1.1と5.1.4を参照してください。

      パラメータ:
      cls - チェック対象のClassオブジェクト
      戻り値:
      cls型のオブジェクトがこのクラスに割り当てられるかどうかを示すboolean
      例外:
      NullPointerException - 指定されたClassパラメータがnullの場合。
      導入されたバージョン:
      1.1
    • isInterface

      public boolean isInterface()
      指定されたClassオブジェクトがインタフェース型を表すかどうかを判定します。
      戻り値:
      このオブジェクトがインタフェースを表す場合はtrue、そうでない場合はfalse
    • isArray

      public boolean isArray()
      このClassオブジェクトが配列クラスを表すかどうかを判定します。
      定義:
      インタフェースTypeDescriptor.OfField<T>内のisArray
      戻り値:
      このオブジェクトが配列クラスを表す場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.1
    • isPrimitive

      public boolean isPrimitive()
      指定されたClassオブジェクトがプリミティブ型を表すかどうかを判定します。

      8つのプリミティブ型とvoidを表す、9つの定義済Classオブジェクトがあります。 これらはJava仮想マシンが作成し、該当するプリミティブ型と同じ名前を持ちます。つまり、booleanbytecharshortintlongfloat、および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
    • isAnnotation

      public boolean isAnnotation()
      Classオブジェクトが注釈型を表す場合はtrueを返します。 すべての注釈型はインタフェースでもあるので、このメソッドがtrueを返すと、isInterface()もtrueを返します。
      戻り値:
      このクラス・オブジェクトが注釈型を表す場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      1.5
    • isSynthetic

      public boolean isSynthetic()
      このクラスが合成クラスである場合はtrueを返し、そうでない場合はfalseを返します。
      戻り値:
      このクラスが『Java言語仕様』で定義されている合成クラスである場合に限り、true
      Java言語仕様を参照してください:
      13.1 バイナリの形式
      導入されたバージョン:
      1.5
    • getName

      public 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"
       

      戻り値:
      このオブジェクトが表すクラスまたはインタフェースの名前。
    • getClassLoader

      public ClassLoader getClassLoader()
      クラスのクラス・ローダーを返します。 実装によっては、nullを使ってブートストラップ・クラス・ローダーを表すこともできます。 このメソッドは、このクラスがブートストラップ・クラス・ローダーでロードされた場合に、そのような実装でnullを返します。

      このオブジェクトがプリミティブ型またはvoidを表す場合は、nullが返されます。

      戻り値:
      このオブジェクトが表すクラスまたはインタフェースをロードしたクラス・ローダー
      例外:
      SecurityException - セキュリティ・マネージャが存在し、呼び出し側クラス・ローダーがnullでなく、クラス・ローダーがリクエストされたクラスのクラス・ローダーと同じでもなく、祖先でもなく、呼び出し元にRuntimePermission ("getClassLoader")がない場合
      関連項目:
      ClassLoader, SecurityManager.checkPermission(java.security.Permission), RuntimePermission
    • getModule

      public モジュール getModule()
      このクラスまたはインタフェースがメンバーであるモジュールを返します。 このクラスが配列型を表す場合、このメソッドは要素型のModuleを返します。 このクラスがプリミティブ型またはvoidを表す場合は、java.baseモジュールのModuleオブジェクトが返されます。 このクラスが名前のないモジュールにある場合、このクラスのクラス・ローダーの「名前なし」 Moduleが返されます。
      戻り値:
      このクラスまたはインタフェースがメンバーであるモジュール
      導入されたバージョン:
      9
    • getTypeParameters

      public TypeVariable<クラス<T>>[] getTypeParameters()
      GenericDeclarationオブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariableオブジェクトの配列を宣言順に返します。 基になるジェネリック宣言で型変数が宣言されていない場合は、長さ0の配列が返されます。
      定義:
      getTypeParameters、インタフェース: GenericDeclaration
      戻り値:
      このジェネリック宣言で宣言された型変数を表すTypeVariableオブジェクトの配列
      例外:
      GenericSignatureFormatError - このジェネリック宣言のジェネリック・シグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合
      導入されたバージョン:
      1.5
    • getSuperclass

      public Class<? super T> getSuperclass()
      このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型またはvoid)の直接スーパークラスを表すClassを返します。 このClassが、Objectクラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。 このオブジェクトが配列クラスを表す場合は、Objectクラスを表すClassオブジェクトが返されます。
      戻り値:
      このオブジェクトが表すクラスの直接スーパークラス
    • getGenericSuperclass

      public Type getGenericSuperclass()
      このClassで表されるエンティティ(クラス、インタフェース、プリミティブ型、またはvoid)の直接のスーパー・クラスを表すTypeを返します。

      スーパークラスがパラメータ化された型である場合、返されるTypeオブジェクトは、ソース・コードで使用される実際の型引数を正確に反映する必要があります。 スーパー・クラスを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。 パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedTypeの宣言を参照してください。 このClassが、Objectクラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。 このオブジェクトが配列クラスを表す場合は、Objectクラスを表すClassオブジェクトが返されます。

      戻り値:
      このオブジェクトが表すクラスの直接スーパークラス
      例外:
      GenericSignatureFormatError - ジェネリック・クラスのシグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合
      TypeNotPresentException - ジェネリック・スーパークラスが、存在しない型宣言を参照する場合
      MalformedParameterizedTypeException - ジェネリック・スーパークラスが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合
      導入されたバージョン:
      1.5
    • getPackage

      public パッケージ getPackage()
      このクラスのパッケージを取得します。

      このクラスがプリミティブ型またはvoidの配列型を表す場合、このメソッドはnullを返します。

      戻り値:
      このクラスのパッケージ。
    • getPackageName

      public String getPackageName()
      完全修飾パッケージ名を返します。

      このクラスがトップレベルのクラスである場合、このメソッドはクラスが所属するパッケージの完全修飾名を返します。クラスが名前のないパッケージにある場合は空の文字列を返します。

      このクラスがメンバー・クラスである場合、このメソッドは「囲みクラス」上でgetPackageName()を呼び出すことに相当します。

      このクラスが「ローカル・クラス」または「匿名クラス」である場合、このメソッドは「囲みメソッド」または「包含コンストラクタ」「宣言クラス」「宣言クラス」を呼び出すことと同等です。

      このクラスが配列型を表す場合、このメソッドは要素型のパッケージ名を返します。 このクラスがプリミティブ型またはvoidを表す場合は、パッケージ名"java.lang"が返されます。

      戻り値:
      完全修飾パッケージ名
      Java言語仕様を参照してください:
      6.7 完全修飾名
      導入されたバージョン:
      9
    • getInterfaces

      public クラス<?>[] getInterfaces()
      このオブジェクトが表すクラスまたはインタフェースによって直接実装されているインタフェースを返します。

      このオブジェクトがクラスを表す場合、戻り値はクラスによって直接実装されたすべてのインタフェースを表すオブジェクトを含む配列です。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すクラスを宣言するimplements節内のインタフェース名の順序に一致します。 たとえば、

      class Shimmer implements FloorWax, DessertTopping { ... }
      という宣言があり、sの値がShimmerのインスタンスであるとします。
      s.getClass().getInterfaces()[0]
      という式の値はFloorWaxインタフェースを表すClassオブジェクトであり、
      s.getClass().getInterfaces()[1]
      という式の値は、DessertToppingインタフェースを表すClassオブジェクトです。

      このオブジェクトがインタフェースを表す場合、そのインタフェースによって直接拡張されたすべてのインタフェースを表すオブジェクトが配列内に入ります。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すインタフェースを宣言するextends節内のインタフェース名の順序に一致します。

      このオブジェクトがインタフェースを実装しないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。

      このオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドは長さが0の配列を返します。

      このClassオブジェクトが配列型を表す場合、Cloneableインタフェースとjava.io.Serializableインタフェースはその順序で返されます。

      戻り値:
      このクラスによって直接実装されるインタフェースの配列
    • getGenericInterfaces

      public Type[] getGenericInterfaces()
      このオブジェクトによって表されるインタフェースまたはクラスによって直接実装されるインタフェースを表すTypeを返します。

      スーパー・インタフェースがパラメータ化された型である場合、そのために返されるTypeオブジェクトは、ソース・コードで使用される実際の型引数を正確に反映する必要があります。 スーパー・インタフェースを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。 パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedTypeの宣言を参照してください。

      このオブジェクトがクラスを表す場合、戻り値はクラスによって直接実装されたすべてのインタフェースを表すオブジェクトを含む配列です。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すクラスを宣言するimplements節内のインタフェース名の順序に一致します。

      このオブジェクトがインタフェースを表す場合、そのインタフェースによって直接拡張されたすべてのインタフェースを表すオブジェクトが配列内に入ります。 配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すインタフェースを宣言するextends節内のインタフェース名の順序に一致します。

      このオブジェクトがインタフェースを実装しないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。

      このオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドは長さが0の配列を返します。

      このClassオブジェクトが配列型を表す場合、Cloneableインタフェースとjava.io.Serializableインタフェースはその順序で返されます。

      戻り値:
      このクラスによって直接実装されるインタフェースの配列
      例外:
      GenericSignatureFormatError - ジェネリック・クラスのシグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合
      TypeNotPresentException - ジェネリック・スーパーインタフェースのどれかが、存在しない型宣言を参照する場合
      MalformedParameterizedTypeException - ジェネリック・スーパーインタフェースのどれかが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合
      導入されたバージョン:
      1.5
    • getComponentType

      public クラス<?> getComponentType()
      配列のコンポーネント型を表すClassを返します。 このクラスが配列クラスを表さない場合、このメソッドはnullを返します。
      戻り値:
      このクラスが配列の場合、このクラスのコンポーネント型を示すClass
      導入されたバージョン:
      1.1
      関連項目:
      Array
    • getModifiers

      public int getModifiers()
      このクラスまたはインタフェースのJava言語修飾子を整数型に符号化して返します。 修飾子は、publicprotectedprivatefinalstaticabstract、およびinterface用のJava仮想マシンの定数から構成されます。これらは、Modifierクラスのメソッドを使ってデコードしなければいけません。

      基本となるクラスが配列クラスの場合、publicprivate、およびprotectedの各修飾子はコンポーネント型の修飾子と同じです。 このClassがプリミティブ型またはvoidの場合、publicの各修飾子は常にtrueで、protectedおよびprivate修飾子は常にfalseです。 このオブジェクトが配列クラス、プリミティブ型、またはvoidを表す場合、final修飾子は常にtrueで、そのインタフェース修飾子は常にfalseです。 その他の修飾子の値は、この仕様では判定されません。

      修飾子の符号化は、『Java Virtual Machine仕様』の表4.1で定義しています。

      戻り値:
      このクラスの修飾子を表すint
      導入されたバージョン:
      1.1
      関連項目:
      Modifier
    • getSigners

      public Object[] getSigners()
      このクラスの署名者を取得します。
      戻り値:
      このクラスの署名者。署名者がない場合はnull。 特にこのメソッドは、このオブジェクトがプリミティブ型またはvoidを表す場合にはnullを返す。
      導入されたバージョン:
      1.1
    • getEnclosingMethod

      public Method getEnclosingMethod() throws SecurityException
      このClassオブジェクトが、メソッド内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表すMethodオブジェクトを返します。 それ以外の場合はnullを返します。 特に、基本となるクラスが、型宣言、インスタンス初期化子、または静的初期化子により直接囲まれるローカル・クラスまたは匿名クラスである場合、このメソッドはnullを返します。
      戻り値:
      クラスがローカル・クラスまたは匿名クラスの場合、基本となるクラスを直接囲むメソッド。そうでない場合はnull
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
      • 呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが囲むクラス内のメソッドへのアクセスを許可しない
      • 呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しが囲むクラスのパッケージへのアクセスを許可しない
      導入されたバージョン:
      1.5
    • getEnclosingConstructor

      public Constructor<?> getEnclosingConstructor() throws SecurityException
      このClassオブジェクトが、コンストラクタ内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表すConstructorオブジェクトを返します。 それ以外の場合はnullを返します。 特に、基本となるクラスが、型宣言、インスタンス初期化子、または静的初期化子により直接囲まれるローカル・クラスまたは匿名クラスである場合、このメソッドはnullを返します。
      戻り値:
      クラスがローカル・クラスまたは匿名クラスの場合、基本となるクラスを直接囲むコンストラクタ。そうでない場合はnull
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
      • 呼出し側のクラス・ローダーが囲むクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが囲むクラス内のコンストラクタへのアクセスを許可しない
      • 呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しが囲むクラスのパッケージへのアクセスを許可しない
      導入されたバージョン:
      1.5
    • getDeclaringClass

      public Class<?> getDeclaringClass() throws SecurityException
      このClassオブジェクトが表すクラスまたはインタフェースが別のクラスのメンバーの場合は、それが宣言されたクラスを表すClassオブジェクトを返します。 このクラスまたはインタフェースがほかのクラスのメンバーでない場合は、nullを返します。 このClassオブジェクトが配列クラス、プリミティブ型、またはvoidを表す場合、このメソッドはnullを返します。
      戻り値:
      このクラスを宣言するクラス
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、宣言しているクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しが宣言しているクラスのパッケージへのアクセスを許可しない場合
      導入されたバージョン:
      1.1
    • getEnclosingClass

      public Class<?> getEnclosingClass() throws SecurityException
      基本となるクラスを直接囲むクラスを返します。 基本となるクラスがトップレベル・クラスである場合、nullを返します。
      戻り値:
      基本となるクラスを直接囲むクラス
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しが囲むクラスのパッケージへのアクセスを許可しない場合
      導入されたバージョン:
      1.5
    • getSimpleName

      public String getSimpleName()
      ソース・コード内で指定されたとおり、基本となるクラスの単純名を返します。 基本となるクラスが匿名の場合、空の文字列を返します。

      配列の単純名は、「[]」が付加されたコンポーネント型の単純名です。 特に、コンポーネント型が匿名である配列の単純名は、「[]」です。

      戻り値:
      基本となるクラスの単純名
      導入されたバージョン:
      1.5
    • getTypeName

      public String getTypeName()
      この型の名前に関する情報提供文字列を返します。
      定義:
      getTypeName、インタフェース: Type
      戻り値:
      この型の名前を表す情報文字列
      導入されたバージョン:
      1.8
    • getCanonicalName

      public String getCanonicalName()
      『Java言語仕様』の定義に従って、基本となるクラスの正規名を返します。 基本となるクラスが正規名を持たない場合(ローカル・クラスや匿名クラス、またはコンポーネント型が正規名を持たない配列の場合)、nullを返します。
      戻り値:
      存在する場合は基本となるクラスの正規名。そうでない場合はnull
      導入されたバージョン:
      1.5
    • isAnonymousClass

      public boolean isAnonymousClass()
      基本となるクラスが匿名クラスである場合だけtrueを返します。
      戻り値:
      このクラスが匿名クラスである場合だけtrue
      導入されたバージョン:
      1.5
    • isLocalClass

      public boolean isLocalClass()
      基本となるクラスがローカル・クラスである場合だけtrueを返します。
      戻り値:
      このクラスがローカル・クラスである場合だけtrue
      導入されたバージョン:
      1.5
    • isMemberClass

      public boolean isMemberClass()
      基本となるクラスがメンバー・クラスである場合だけtrueを返します。
      戻り値:
      このクラスがメンバー・クラスである場合だけtrue
      導入されたバージョン:
      1.5
    • getClasses

      public クラス<?>[] getClasses()
      このClassオブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClassオブジェクトを格納している配列を返します。 スーパー・クラスから継承したpublicクラスおよびインタフェースのメンバー、ならびにクラスが宣言したpublicクラスとインタフェースのメンバーも含まれます。 このClassオブジェクトがpublicメンバー・クラスやインタフェースを持たない場合、このメソッドは長さが0の配列を返します。 また、このClassオブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合も、このメソッドは長さが0の配列を返します。
      戻り値:
      このクラスのpublicメンバーを表すClassオブジェクトの配列
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合
      導入されたバージョン:
      1.1
    • getFields

      public Field[] getFields() throws SecurityException
      このClassオブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能なpublicフィールドをリフレクトする、Fieldオブジェクトを保持している配列を返します。

      このClassオブジェクトが、アクセス可能なpublicフィールドを持たないクラスまたはインタフェースを表す場合、このメソッドは長さ0の配列を返します。

      このClassオブジェクトがクラスを表す場合、このメソッドは、クラスおよびそのスーパークラスとスーパー・インタフェースのパブリック・フィールドを返します。

      このClassオブジェクトがインタフェースを表す場合、このメソッドはこのインタフェースとそのすべてのスーパー・インタフェースのフィールドを返します。

      このClassオブジェクトが配列型、プリミティブ型、またはvoidを表す場合、このメソッドは長さが0の配列を返します。

      返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。

      戻り値:
      publicフィールドを表すFieldオブジェクトの配列
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合
      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オブジェクトによって表されるクラスまたはインタフェースとします:

      1. メソッドの組合は以下のもので構成される:
        1. Cは、getDeclaredMethods()によって返されるpublicインスタンスと静的メソッドを宣言し、パブリック・メソッドのみを含むようにフィルタリングしました。
        2. CがObject以外のクラスである場合、このアルゴリズムをCのスーパークラスに再帰的に呼び出す結果を含めます。
        3. このアルゴリズムをCのすべての直接スーパー・インタフェースに再帰的に呼び出す結果を含めますが、インスタンス・メソッドのみを含みます。
      2. ステップ1のUnionは、同じシグネチャ(名前、パラメータ型)と戻り値の型を持つメソッドのサブセットに分割されます。
      3. そのような各サブセット内では、最も具体的なメソッドのみが選択されます。 メソッドMを、同じシグネチャと戻り値の型を持つメソッドのセットからのメソッドとします。 Mは、NがMよりも特異的であるように、同じ集合からそのようなメソッドN!= Mが存在しない場合に最も具体的です。 NはMよりも具体的です:
        1. Nはクラスによって宣言され、Mはインタフェースによって宣言されます。または
        2. NとMはどちらもクラスによって宣言されており、どちらもインタフェースで宣言されています。N宣言型は、宣言型(MとNの宣言型が同じ型の場合、MとNは同じメソッドです)と同じか、またはサブ型です。
      4. このアルゴリズムの結果は、ステップ3のすべての選択されたメソッドの和集合です。

      APIの注:
      Java言語では、クラスが同じシグネチャで異なる戻り型を持つ複数のメソッドを宣言することを禁じますが、Java仮想マシンではそうではないため、クラス内に特定の名前とパラメータ型を持つメソッドが複数存在することがあります。 仮想マシンのこのような柔軟性を使用して、さまざまな言語機能を実装することができます。 たとえば、共変リターンは「ブリッジ・メソッド」で実装できます。ブリッジ・メソッドとオーバーライド・メソッドは同じシグネチャを持ちますが、戻り値の型は異なります。
      戻り値:
      このクラスのpublicメソッドを表すMethodオブジェクトの配列
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合
      Java言語仕様を参照してください:
      8.2 クラス・メンバー
      「8.4メソッド宣言」
      導入されたバージョン:
      1.1
    • getConstructors

      public Constructor<?>[] getConstructors() throws SecurityException
      このClassオブジェクトが表すクラスのすべてのpublicコンストラクタをリフレクトするConstructorオブジェクトを格納している配列を返します。 クラスにpublicコンストラクタがない場合、クラスが配列クラスの場合、またはクラスがプリミティブ型またはvoidをリフレクトする場合には、長さが0の配列を返します。 このメソッドは Constructor<T>オブジェクトの配列(このクラスからのコンストラクタの配列)を返しますが、このメソッドの戻り値の型は Constructor<?>[]であり、予想されるConstructor<T>[]ではないことに注意してください。 この情報の少ない戻り値の型は、このメソッドから返されたあとで必要になり、この配列はさまざまなクラスのConstructorオブジェクトを保持するよう変更されることがあります。これは、Constructor<T>[]の型保証に違反します。
      戻り値:
      このクラスのpublicコンストラクタを表すConstructorオブジェクトの配列
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合
      導入されたバージョン:
      1.1
    • getField

      public Field getField​(String name) throws NoSuchFieldException, SecurityException
      このClassオブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・フィールドをリフレクトするFieldオブジェクトを返します。 nameパラメータは、要求されるフィールドに単純名を指定するStringです。

      リフレクトされるフィールドは、次のアルゴリズムで決定されます。 ここでは、このオブジェクトが表すクラスまたはインタフェースをCとします。

      1. Cが指定された名前を持つpublicフィールドを宣言すると、それがリフレクトされるフィールドになります。
      2. 上記のステップ1でフィールドが見つからなかった場合は、このアルゴリズムをCのそれぞれの直接スーパー・インタフェースに再帰的に適用します。 直接スーパー・インタフェースは宣言された順序で検索されます。
      3. 上記のステップ1と2でフィールドが見つからない場合、およびCがスーパー・クラスSを持つ場合は、このアルゴリズムはSで再帰的に呼び出されます。 Cがスーパー・クラスを持たない場合は、NoSuchFieldExceptionがスローされます。

      このClassオブジェクトが配列型を表す場合、このメソッドはその配列型のlengthフィールドを見つけられません。

      パラメータ:
      name - フィールド名
      戻り値:
      nameで指定されたこのクラスのFieldオブジェクト
      例外:
      NoSuchFieldException - 指定された名前のフィールドが見つからない場合。
      NullPointerException - namenullである場合
      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オブジェクトの配列です。 parameterTypesnullの場合は、空の配列のように扱われます。

      このClassオブジェクトが配列型を表す場合、このメソッドはObjectからclone()以外の配列型によって継承されたパブリック・メソッドを検出します。

      このClassオブジェクトがインタフェースを表す場合、このメソッドはObjectから暗黙的に宣言されたメソッドを検出しません。 したがって、このインタフェースまたはそのスーパー・インタフェースのいずれかで明示的に宣言されているメソッドがない場合、このメソッドはメソッドを検出しません。

      このメソッドは、名前が"<init>"または"<clinit>"のメソッドを検出しません。

      一般に、反映されるメソッドは、以下の4ステップ・アルゴリズムによって決定されます。 CをこのClassオブジェクトによって表されるクラスまたはインタフェースとします:

      1. メソッドの組合は以下のもので構成される:
        1. CはgetDeclaredMethods()によって返されたpublicインスタンスと静的メソッドを宣言し、与えられたnameparameterTypesに一致するパブリック・メソッドのみを含むようにフィルタリングしました
        2. CがObject以外のクラスである場合、このアルゴリズムをCのスーパークラスに再帰的に呼び出す結果を含めます。
        3. このアルゴリズムをCのすべての直接スーパー・インタフェースに再帰的に呼び出す結果を含めますが、インスタンス・メソッドのみを含みます。
      2. この共用体は、同じ戻り型(ステップ1からのメソッドの選択でも、メソッド名とパラメータ型が同じであることが保証されます)を持つメソッドのサブセットに分割されます。
      3. そのような各サブセット内では、最も具体的なメソッドのみが選択されます。 メソッドMを、同じVMシグネチャ(戻り値の型、名前、パラメータ型)を持つ一連のメソッドのメソッドとします。 Mは、NがMよりも特異的であるように、同じ集合からそのようなメソッドN!= Mが存在しない場合に最も具体的です。 NはMよりも具体的です:
        1. Nはクラスによって宣言され、Mはインタフェースによって宣言されます。または
        2. NとMはどちらもクラスによって宣言されており、どちらもインタフェースで宣言されています。N宣言型は、宣言型(MとNの宣言型が同じ型の場合、MとNは同じメソッドです)と同じか、またはサブ型です。
      4. このアルゴリズムの結果は、ステップ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 - パラメータのリスト
      戻り値:
      指定されたnameparameterTypesに一致するMethodオブジェクト
      例外:
      NoSuchMethodException - 一致するメソッドが見つからない場合、または名前が「<init>」または「<clinit>」の場合。
      NullPointerException - namenullである場合
      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オブジェクト
      例外:
      NoSuchMethodException - 一致するメソッドが見つからない場合。
      SecurityException - セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない場合
      導入されたバージョン:
      1.1
    • getDeclaredClasses

      public Class<?>[] getDeclaredClasses() throws SecurityException
      このClassオブジェクトが表すクラスのメンバーとして宣言されたすべてのクラスおよびインタフェースをリフレクトするClassオブジェクトの配列を返します。 これには、クラスが宣言したpublic、protected、デフォルト(package)アクセス、およびprivateクラスとインタフェースは含まれますが、継承クラスとインタフェースは含まれません。 このメソッドは、クラスがメンバーとしてクラスまたはインタフェースを宣言していない場合や、このClassオブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合には、長さが0の配列を返します。
      戻り値:
      このクラスの宣言されたすべてのメンバーを表すClassオブジェクトの配列
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
      • 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたクラスへのアクセスを許可しない
      • 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない
      導入されたバージョン:
      1.1
    • getDeclaredFields

      public Field[] getDeclaredFields() throws SecurityException
      このClassオブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトするFieldオブジェクトの配列を返します。 これには、public、protected、デフォルト(package)アクセス、およびprivateフィールドは含まれますが、継承フィールドは含まれません。

      このClassオブジェクトが宣言されたフィールドを持たないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。

      このClassオブジェクトが配列型、プリミティブ型、またはvoidを表す場合、このメソッドは長さが0の配列を返します。

      返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。

      戻り値:
      このクラスの宣言されたすべてのフィールドを表すFieldオブジェクトの配列
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
      • 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたフィールドへのアクセスを許可しない
      • 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない
      Java言語仕様を参照してください:
      8.2 クラス・メンバー
      「8.3フィールド宣言」
      導入されたバージョン:
      1.1
    • getDeclaredMethods

      public Method[] getDeclaredMethods() throws SecurityException
      この Classオブジェクトによって表されるクラスまたはインタフェースのすべての宣言されたメソッドをリフレクトするMethodオブジェクトが格納された配列を返します。これには、public、protected、デフォルト(package)アクセスおよびprivateメソッドが含まれますが、継承されたメソッドは除外されます。

      このClassオブジェクトが、名前とパラメータ型は同じであるが戻り値の型が異なる複数の宣言されたメソッドを持つ型を表す場合、返される配列にはそのような各メソッドのMethodオブジェクトが含まれます。

      このClassオブジェクトがクラス初期化メソッド<clinit>を持つ型を表す場合、返される配列には対応するMethodオブジェクトは含まれません

      このClassオブジェクトが宣言されたメソッドを持たないクラスまたはインタフェースを表す場合、返される配列の長さは0になります。

      このClassオブジェクトが配列型、プリミティブ型、またはvoidを表す場合、返される配列の長さは0になります。

      返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。

      戻り値:
      このクラスの宣言されたすべてのメソッドを表すMethodオブジェクトの配列
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
      • 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたメソッドへのアクセスを許可しない
      • 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない
      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オブジェクトの配列
      例外:
      SecurityException - セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
      • 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しがこのクラス内の宣言されたコンストラクタへのアクセスを許可しない
      • 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない
      導入されたバージョン:
      1.1
    • getDeclaredField

      public Field getDeclaredField​(String name) throws NoSuchFieldException, SecurityException
      このClassオブジェクトが表すクラスまたはインタフェースの、指定された宣言されたフィールドをリフレクトするFieldオブジェクトを返します。 nameパラメータは、要求されるフィールドに単純名を指定するStringです。

      このClassオブジェクトが配列型を表す場合、このメソッドはその配列型のlengthフィールドを見つけられません。

      パラメータ:
      name - フィールドの名前
      戻り値:
      このクラスに指定されたフィールドのFieldオブジェクト
      例外:
      NoSuchFieldException - 指定された名前のフィールドが見つからない場合。
      NullPointerException - namenullである場合
      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オブジェクト
      例外:
      NoSuchMethodException - 一致するメソッドが見つからない場合。
      NullPointerException - namenullである場合
      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オブジェクト
      例外:
      NoSuchMethodException - 一致するメソッドが見つからない場合。
      SecurityException - セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
      • 呼出し側のクラス・ローダーがこのクラスのクラス・ローダーと同じでなく、かつRuntimePermission("accessDeclaredMembers")を持つs.checkPermissionメソッドの呼出しが宣言されたコンストラクタへのアクセスを許可しない
      • 呼出し側のクラス・ローダーが同じでないか、現在のクラス・ローダーの祖先とs.checkPackageAccess()の呼出しがこのクラスのパッケージへのアクセスを許可しない
      導入されたバージョン:
      1.1
    • getResourceAsStream

      public InputStream getResourceAsStream​(String name)
      指定された名前のリソースを探します。

      このクラスが名前付きModuleにある場合、このメソッドはモジュール内のリソースを検索しようとします。 これは、モジュール・クラス・ローダーfindResource(String,String)メソッドに委譲し、モジュール名とリソースの絶対名で起動します。 指定されたモジュールのリソースは、Module getResourceAsStreamメソッドで指定されたカプセル化のルールの対象であるため、リソースが呼び出し元モジュールに対して開かれていないパッケージ内の非".class"リソースである場合、このメソッドはnullを返します。

      それ以外の場合、このクラスが名前付きモジュールにない場合、指定されたクラスに関連付けられたリソースを検索するためのルールは、クラスの「クラス・ローダー」の定義によって実装されます。 このメソッドは、このオブジェクトのクラス・ローダーに委譲されます。 このオブジェクトがブートストラップ・クラス・ローダーによってロードされた場合、このメソッドはClassLoader.getSystemResourceAsStream(java.lang.String)に委任します。

      委譲の前に、このアルゴリズムを使って指定されたリソース名から絶対リソース名が構築されます。

      • name'/' ('\u002f')で始まっている場合、リソースの絶対名は、name'/'のあとの部分になります。
      • そうでない場合、絶対名は次の形式になる
        modified_package_name/name

        ここで、modified_package_nameは、このオブジェクトのパッケージ名の'.' ('\u002e')を'/'で置き換えたものです。

      パラメータ:
      name - 要求されるリソースの名前
      戻り値:
      InputStreamオブジェクト、この名前のリソースが見つからない場合はnull、リソースが少なくともコール元モジュールに対してopenではないパッケージ内にある、またはリソースへのアクセスがセキュリティ・マネージャによって拒否されます。
      例外:
      NullPointerException - namenullである場合
      導入されたバージョン:
      1.1
      関連項目:
      Module.getResourceAsStream(String)
    • getResource

      public URL getResource​(String name)
      指定された名前のリソースを探します。

      このクラスが名前付きModuleにある場合、このメソッドはモジュール内のリソースを検索しようとします。 これは、モジュール・クラス・ローダーfindResource(String,String)メソッドに委譲し、モジュール名とリソースの絶対名で起動します。 指定されたモジュールのリソースは、Module getResourceAsStreamメソッドで指定されたカプセル化のルールの対象であるため、リソースが呼び出し元モジュールに対して開かれていないパッケージ内の非".class"リソースである場合、このメソッドはnullを返します。

      それ以外の場合、このクラスが名前付きモジュールにない場合、指定されたクラスに関連付けられたリソースを検索するためのルールは、クラスの「クラス・ローダー」の定義によって実装されます。 このメソッドは、このオブジェクトのクラス・ローダーに委譲されます。 このオブジェクトがブートストラップ・クラス・ローダーによってロードされた場合、このメソッドはClassLoader.getSystemResource(java.lang.String)に委任します。

      委譲の前に、このアルゴリズムを使って指定されたリソース名から絶対リソース名が構築されます。

      • name'/' ('\u002f')で始まっている場合、リソースの絶対名は、name'/'のあとの部分になります。
      • そうでない場合、絶対名は次の形式になる
        modified_package_name/name

        ここで、modified_package_nameは、このオブジェクトのパッケージ名の'.' ('\u002e')を'/'で置き換えたものです。

      パラメータ:
      name - 要求されるリソースの名前
      戻り値:
      URLオブジェクト、nullがこの名前のリソースが見つからない場合、URLでリソースを見つけることができない、リソースが少なくとも呼出し元モジュールに対してopenではないパッケージにある、またはリソースへのアクセスがセキュリティ・マネージャによって拒否されます。
      例外:
      NullPointerException - namenullである場合
      導入されたバージョン:
      1.1
    • getProtectionDomain

      public ProtectionDomain getProtectionDomain()
      このクラスのProtectionDomainを返します。 セキュリティ・マネージャがインストールされていると、このメソッドはまずセキュリティ・マネージャのcheckPermissionメソッドをRuntimePermission("getProtectionDomain")アクセス権を使って呼び出すことによってProtectionDomainを問題なく取得できることを確認します。
      戻り値:
      このクラスのProtectionDomain
      例外:
      SecurityException - セキュリティ・マネージャが存在し、そのcheckPermissionメソッドがProtectionDomainの取得を許可しない場合。
      導入されたバージョン:
      1.2
      関連項目:
      ProtectionDomain, SecurityManager.checkPermission(java.security.Permission), RuntimePermission
    • desiredAssertionStatus

      public boolean desiredAssertionStatus()
      このメソッドの呼出し時にこのクラスを初期化する場合、クラスに割り当てられるアサーション・ステータスを返します。 このクラスのアサーション・ステータスが設定されている場合は、最新設定が返されます。それ以外の場合で、このクラスに関連するパッケージのデフォルトのアサーション・ステータスが存在するときは、最適なパッケージのデフォルトのアサーション・ステータスの最新設定が返されます。それ以外の場合で、このクラスがシステム・クラスでない(つまりクラス・ローダーを保持する)ときは、クラス・ローダーのデフォルトのアサーション・ステータスが返されます。それ以外の場合、システム・クラスのデフォルトのアサーション・ステータスが返されます。

      これはJRE自体で使用するためのメソッドであるため、プログラマがこのメソッドを必要とすることはほとんどありません (このメソッドにより、初期化時にアサーションが有効にするかどうかをクラスが判別できる)。 指定されたクラスの初期化時に、このメソッドが、指定されたクラスに関連付けられた実際のアサーション・ステータスを返すとは限らないことに留意してください。

      戻り値:
      対象とする、指定されたクラスのアサーション・ステータス
      導入されたバージョン:
      1.4
      関連項目:
      ClassLoader.setClassAssertionStatus(java.lang.String, boolean), ClassLoader.setPackageAssertionStatus(java.lang.String, boolean), ClassLoader.setDefaultAssertionStatus(boolean)
    • isEnum

      public boolean isEnum()
      このクラスがソース・コードでenumとして宣言された場合だけtrueを返します。
      戻り値:
      このクラスがソース・コードでenumとして宣言された場合だけtrue
      導入されたバージョン:
      1.5
    • getEnumConstants

      public T[] getEnumConstants()
      このenumクラスの要素を返すか、このClassオブジェクトがenum型を表さない場合はnullを返します。
      戻り値:
      このClassオブジェクトで表されたenumクラスで構成される値が格納されている配列(宣言された順)。このClassオブジェクトがenum型を表さない場合はnull
      導入されたバージョン:
      1.5
    • cast

      public T cast​(Object obj)
      このClassオブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。
      パラメータ:
      obj - キャストされるオブジェクト
      戻り値:
      キャスト後のオブジェクト。オブジェクトがnullの場合はnull
      例外:
      ClassCastException - オブジェクトがnull以外であり、型Tに割り当てられない場合。
      導入されたバージョン:
      1.5
    • asSubclass

      public <U> Class<? extends U> asSubclass​(Class<U> clazz)
      指定されたクラス・オブジェクトによって表されるクラスのサブクラスを表すためにこのClassオブジェクトをキャストします。 キャストが有効であることを確認し、有効でない場合はClassCastExceptionをスローします。 このメソッドが成功すると、このクラス・オブジェクトへの参照を返します。

      このメソッドは、受け取る側のClassオブジェクトを制限するAPIに渡すために、クライアントがClassオブジェクトの型をナロー変換する必要がある場合に役立ちます。 (ジェネリック型はイレイジャによって実装されるので)キャストの正確性を実行時に確認することはできないため、キャストによってコンパイル時の警告が生成されます。

      型パラメータ:
      U - このクラス・オブジェクトがキャストされる型
      パラメータ:
      clazz - このクラス・オブジェクトがキャストされる型のクラス
      戻り値:
      指定されたクラス・オブジェクトのサブクラスを表すためにキャストされた、このClassオブジェクト。
      例外:
      ClassCastException - このClassオブジェクトが指定されたクラスのサブクラスを表さない場合(「サブクラス」はクラス自体を含む)。
      導入されたバージョン:
      1.5
    • getAnnotation

      public <A extends Annotation> A getAnnotation​(Class<A> annotationClass)
      インタフェースからコピーされた説明: AnnotatedElement
      存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。
      定義:
      getAnnotation、インタフェース: AnnotatedElement
      型パラメータ:
      A - 問合せの対象であり、存在する場合に返される注釈の型
      パラメータ:
      annotationClass - 注釈型に対応するClassオブジェクト
      戻り値:
      存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
      例外:
      NullPointerException - 指定された注釈クラスがnullの場合
      導入されたバージョン:
      1.5
    • isAnnotationPresent

      public boolean isAnnotationPresent​(Class<? extends Annotation> annotationClass)
      指定された型の注釈がこの要素に存在する場合はtrueを返し、そうでない場合はfalseを返します。 このメソッドは、主にマーカー注釈への簡易アクセスを目的に設計されています。

      このメソッドによって返されるtrue値は、getAnnotation(annotationClass) != nullと同等です。

      デフォルト・メソッドの本体は、前述のコードとして指定されています。

      定義:
      isAnnotationPresent、インタフェース: AnnotatedElement
      パラメータ:
      annotationClass - 注釈型に対応するClassオブジェクト
      戻り値:
      指定された注釈型の注釈がこの要素に存在する場合はtrue、そうでない場合はfalse
      例外:
      NullPointerException - 指定された注釈クラスがnullの場合
      導入されたバージョン:
      1.5
    • getAnnotationsByType

      public <A extends Annotation> A[] getAnnotationsByType​(Class<A> annotationClass)
      インタフェースからコピーされた説明: AnnotatedElement
      この要素に関連付けられている注釈を返します。 この要素に関連付けられている注釈がない場合、戻り値は長さ0の配列です。 このメソッドとAnnotatedElement.getAnnotation(Class)の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈を調べることで、その型の1つ以上の注釈の検索が試みられることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。
      定義:
      getAnnotationsByType、インタフェース: AnnotatedElement
      型パラメータ:
      A - 問合せの対象であり、存在する場合に返される注釈の型
      パラメータ:
      annotationClass - 注釈型に対応するClassオブジェクト
      戻り値:
      この要素に関連付けられている場合は、この要素の指定された注釈型のすべての注釈。そうでない場合は長さ0の配列
      例外:
      NullPointerException - 指定された注釈クラスがnullの場合
      導入されたバージョン:
      1.8
    • getAnnotations

      public Annotation[] getAnnotations()
      インタフェースからコピーされた説明: AnnotatedElement
      この要素に存在する注釈を返します。 この要素に存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。
      定義:
      getAnnotations、インタフェース: AnnotatedElement
      戻り値:
      この要素に存在する注釈
      導入されたバージョン:
      1.5
    • getDeclaredAnnotation

      public <A extends Annotation> A getDeclaredAnnotation​(Class<A> annotationClass)
      インタフェースからコピーされた説明: AnnotatedElement
      直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。 このメソッドは継承された注釈を無視します。 (この要素に直接存在する注釈がない場合は、nullを返します。)
      定義:
      getDeclaredAnnotation、インタフェース: AnnotatedElement
      型パラメータ:
      A - 問合せの対象であり、直接存在する場合に返される注釈の型
      パラメータ:
      annotationClass - 注釈型に対応するClassオブジェクト
      戻り値:
      直接存在する場合は、この要素の指定された注釈型の注釈。そうでない場合はnull
      例外:
      NullPointerException - 指定された注釈クラスがnullの場合
      導入されたバージョン:
      1.8
    • getDeclaredAnnotationsByType

      public <A extends Annotation> A[] getDeclaredAnnotationsByType​(Class<A> annotationClass)
      インタフェースからコピーされた説明: AnnotatedElement
      直接存在する間接的に存在する場合は、この要素の指定された型の注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接または間接的に存在する指定された注釈がない場合、戻り値は長さ0の配列です。 このメソッドとAnnotatedElement.getDeclaredAnnotation(Class)の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈(存在する場合)を調べることで、その型の1つ以上の注釈の検索が試みられることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。
      定義:
      getDeclaredAnnotationsByType、インタフェース: AnnotatedElement
      型パラメータ:
      A - 問合せの対象であり、直接または間接的に存在する場合に返される注釈の型
      パラメータ:
      annotationClass - 注釈型に対応するClassオブジェクト
      戻り値:
      この要素に直接または間接的に存在する場合は、この要素の指定された注釈型のすべての注釈。そうでない場合は長さ0の配列
      例外:
      NullPointerException - 指定された注釈クラスがnullの場合
      導入されたバージョン:
      1.8
    • getDeclaredAnnotations

      public Annotation[] getDeclaredAnnotations()
      インタフェースからコピーされた説明: AnnotatedElement
      この要素に直接存在する注釈を返します。 このメソッドは継承された注釈を無視します。 この要素に直接存在する注釈がない場合、戻り値は長さ0の配列です。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。
      定義:
      getDeclaredAnnotations、インタフェース: AnnotatedElement
      戻り値:
      この要素に直接存在する注釈
      導入されたバージョン:
      1.5
    • getAnnotatedSuperclass

      public AnnotatedType getAnnotatedSuperclass()
      Classオブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedTypeオブジェクトを返します。 (「... extends Foo」でスーパー・クラスを指定するためのFoo型の使用はFoo型の宣言とは異なります。)

      このClassオブジェクトが、宣言が注釈付きのスーパー・クラスを明示的に示さない型を表す場合、戻り値は注釈の付かない要素を表すAnnotatedTypeオブジェクトになります。

      このClassObjectクラス、インタフェース・タイプ、配列型、プリミティブ型、またはvoidを表す場合、戻り値はnullになります。

      戻り値:
      スーパー・クラスを表すオブジェクト
      導入されたバージョン:
      1.8
    • getAnnotatedInterfaces

      public AnnotatedType[] getAnnotatedInterfaces()
      Classオブジェクトによって表されるエンティティのスーパーインタフェースを指定する型の使用を表すAnnotatedTypeオブジェクトの配列を返します。 (「... implements Foo」でスーパー・インタフェースを指定するためのFoo型の使用はFoo型の宣言とは異なります。)

      このClassオブジェクトがクラスを表す場合、戻り値は、そのクラスによって実装されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。 配列内のオブジェクトの順序は、このClassオブジェクトの宣言の「implements」節で使用されるインタフェース・タイプの順序に一致します。

      このClassオブジェクトがインタフェースを表す場合、戻り値は、そのインタフェースによって直接拡張されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。 配列内のオブジェクトの順序は、このClassオブジェクトの宣言の「extends」節で使用されるインタフェース・タイプの順序に一致します。

      このClassオブジェクトが、宣言がいずれかの注釈付きスーパー・インタフェースを明示的に示さないクラスまたはインタフェースを表す場合、戻り値は長さが0の配列になります。

      このClassオブジェクトがObjectクラス、配列型、プリミティブ型、またはvoidを表す場合、戻り値は長さが0の配列になります。

      戻り値:
      スーパー・インタフェースを表す配列
      導入されたバージョン:
      1.8
    • getNestHost

      public クラス<?> 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()の呼出しの上位または同じではない場合、返されるクラスのパッケージへのアクセスは拒否されます。
      Java Virtual Machine仕様を参照してください:
      4.7.28 NestHost属性
      「4.7.29 NestMembers属性」
      「5.4.4アクセス制御」
      導入されたバージョン:
      11
    • isNestmateOf

      public boolean isNestmateOf​(クラス<?> c)
      指定されたClassが、このClassオブジェクトによって表されるクラスまたはインタフェースをネストしたものであるかどうかを判定します。 2つのクラスまたはインタフェースが同じ「ホストのネスト」を持つ場合、それらはネストされます。
      パラメータ:
      c - チェックするクラス
      戻り値:
      このクラスとcが同じネストのメンバーである場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      11
    • getNestMembers

      public クラス<?>[] getNestMembers()
      このClassオブジェクトが属する、ネストされたクラスまたはインタフェースのメンバーであるすべてのクラスおよびインタフェースを表すClassオブジェクトを含む配列を返します。 そのネストの「ホストのネスト」は、配列のzeroth要素です。 その後の要素は、ネストされたホストによって、ネストされたメンバーとして記録されたクラスまたはインタフェースを表します。そのような要素の順序は指定されません。 重複は許可されます。 ネストされたホストがメンバーを列挙しない場合、配列にはthisを含む単一の要素が含まれます。

      配列のタイプ、プリミティブ型およびvoidを表す各Classオブジェクトは、thisのみを含む配列を返します。

      このメソッドは、ネスト・ホストによってネストのメンバーとして記録されるクラスまたはインタフェースごとに、そのクラスまたはインタフェースが同じネストのメンバーとしてそれ自体を記録することを検証します。 この検証中に発生した例外は、このメソッドによって再スローされます。

      戻り値:
      このクラスと同じネストにあるすべてのクラスとインタフェースの配列
      例外:
      LinkageError - ネストされたメンバーまたはそのネストされたホストのロードまたは検証に問題がある場合
      SecurityException - 返されるクラスが現在のクラスではない場合、およびセキュリティ・マネージャであるsが存在し、呼出し元のクラス・ローダーが、返されたクラスのクラス・ローダーとs.checkPackageAccess()の呼出しの上位または同じではない場合、返されたクラスのパッケージへのアクセスは拒否されます。
      導入されたバージョン:
      11
      関連項目:
      getNestHost()
    • descriptorString

      public String descriptorString()
      このクラスの型記述子文字列を返します。

      これは、forName(java.lang.String)の完全な逆ではありません。共通の名前を共有し、異なるクラス・ローダーを持つ個別のクラスには、同一の記述子文字列が含まれます。

      定義:
      インタフェースTypeDescriptor内のdescriptorString
      戻り値:
      型記述子の表現
      Java Virtual Machine仕様を参照してください:
      4.3.2 フィールド記述子
      導入されたバージョン:
      12
    • componentType

      public クラス<?> componentType()
      配列型を説明する場合は、Classのコンポーネント型を返します。それ以外の場合は、nullを返します。
      定義:
      インタフェースTypeDescriptor.OfField<T>内のcomponentType
      実装要件:
      getComponentType()と同等です。
      戻り値:
      Classはコンポーネント・タイプを説明します。または、Classが配列型を記述しない場合はnull
      導入されたバージョン:
      12
    • arrayType

      public クラス<?> arrayType()
      コンポーネント型がこのClassによって記述されている配列型のClassを返します。
      定義:
      インタフェースTypeDescriptor.OfField<T>内のarrayType
      戻り値:
      配列型について説明するClass
      導入されたバージョン:
      12
    • describeConstable

      public オプショナル<ClassDesc> describeConstable()
      このインスタンスの名目記述子を返します(作成可能な場合)、作成できない場合は空のOptionalを返します。
      定義:
      インタフェースConstable内のdescribeConstable
      戻り値:
      最終的な名目記述子を含むOptional、または作成できない場合は空のOptional
      導入されたバージョン:
      12