JavaTM 2 Platform
Standard Ed. 5.0

java.lang
クラス Class<T>

java.lang.Object
  上位を拡張 java.lang.Class<T>
すべての実装されたインタフェース:
Serializable, AnnotatedElement, GenericDeclaration, Type

public final class Class<T>
extends Object
implements Serializable, GenericDeclaration, Type, AnnotatedElement

クラス Class のインスタンスは、実行中の Java アプリケーションのクラスおよびインタフェースを表します。列挙はクラスの一種、注釈はインタフェースの一種です。同様にどの配列も、同じ要素型および次元数を持つすべての配列により共有される Class オブジェクトとしてリフレクトされるクラスに属します。Java のプリミティブ型 (booleanbytecharshortintlongfloatdouble) に加え、キーワード voidClass オブジェクトで表されます。

Class には、public コンストラクタはありません。Class オブジェクトは、クラスがロードされる際に Java 仮想マシンによって、およびクラスローダの defineClass メソッドの呼び出しによって自動的に構築されます。

以下の例では、Class オブジェクトを使ってオブジェクトのクラス名を出力します。


 void printClassName(Object obj) { System.out.println("The class of " + obj + " is " + obj.getClass().getName()); } 

クラスリテラルを使って、名前付き型 (または void) のための Class オブジェクトを取得することもできます (JLS セクション 15.8.2)。例:


 System.out.println("The name of class Foo is: "+Foo.class.getName()); 

導入されたバージョン:
JDK1.0
関連項目:
ClassLoader.defineClass(byte[], int, int), 直列化された形式

メソッドの概要
<U> Class<? extends U>
asSubclass(Class<U> clazz)
          指定されたクラスオブジェクトによって表されるクラスのサブクラスを表すためにこの Class オブジェクトをキャストします。
 T cast(Object obj)
          この Class オブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。
 boolean desiredAssertionStatus()
          このメソッドの呼び出し時にこのクラスを初期化する場合、クラスに割り当てられる宣言ステータスを返します。
static Class<?> forName(String className)
          指定された文字列名を持つクラスまたはインタフェースに関連付けられた、Class オブジェクトを返します。
static Class<?> forName(String name, boolean initialize, ClassLoader loader)
          指定されたクラスローダを使って、指定された文字列名を持つクラスまたはインタフェースに関連付けられた Class オブジェクトを返します。
<A extends Annotation>
A
getAnnotation(Class<A> annotationClass)
          指定された型の注釈が存在する場合は、指定された型の要素の注釈を返します。
 Annotation[] getAnnotations()
          この要素に存在するすべての注釈を返します (この要素に注釈がない場合は長さゼロの配列を返します)。
 String getCanonicalName()
          Java 言語仕様の定義に従って、基本となるクラスの標準名を返します。
 Class[] getClasses()
          この Class オブジェクトが表すクラスのメンバである、すべての public クラスおよびインタフェースを表す Class オブジェクトを格納している配列を返します。
 ClassLoader getClassLoader()
          クラスのクラスローダを返します。
 Class<?> getComponentType()
          配列のコンポーネント型を表す Class を返します。
 Constructor<T> getConstructor(Class... parameterTypes)
          この Class オブジェクトが表すクラスの指定された public コンストラクタをリフレクトする Constructor オブジェクトを返します。
 Constructor[] getConstructors()
          この Class オブジェクトが表すクラスのすべての public コンストラクタをリフレクトする Constructor オブジェクトを格納している配列を返します。
 Annotation[] getDeclaredAnnotations()
          この要素に直接存在するすべての注釈を返します。
 Class[] getDeclaredClasses()
          この Class オブジェクトが表すクラスのメンバとして宣言されたすべてのクラスおよびインタフェースをリフレクトする Class オブジェクトの配列を返します。
 Constructor<T> getDeclaredConstructor(Class... parameterTypes)
          この Class オブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトする Constructor オブジェクトを返します。
 Constructor[] getDeclaredConstructors()
          この Class オブジェクトが表すクラスによって宣言されたすべてのコンストラクタをリフレクトする Constructor オブジェクトの配列を返します。
 Field getDeclaredField(String name)
          この Class オブジェクトが表すクラスまたはインタフェースの指定された宣言フィールドをリフレクトする Field オブジェクトを返します。
 Field[] getDeclaredFields()
          この Class オブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトする Field オブジェクトの配列を返します。
 Method getDeclaredMethod(String name, Class... parameterTypes)
          この Class オブジェクトが表すクラスまたはインタフェースの指定された宣言メソッドをリフレクトする Method オブジェクトを返します。
 Method[] getDeclaredMethods()
          この Class オブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのメソッドをリフレクトする Method オブジェクトの配列を返します。
 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 言語修飾子を整数型に符号化して返します。
 String getName()
          この Class オブジェクトが表すエンティティ (クラス、インタフェース、配列クラス、プリミティブ型、または void) の名前を、String として返します。
 Package getPackage()
          このクラスのパッケージを取得します。
 ProtectionDomain getProtectionDomain()
          このクラスの ProtectionDomain を返します。
 URL getResource(String name)
          指定された名前のリソースを探します。
 InputStream getResourceAsStream(String name)
          指定された名前のリソースを探します。
 Object[] getSigners()
          このクラスの署名者を取得します。
 String getSimpleName()
          ソースコード内で指定されたとおり、基本となるクラスの単純名を返します。
 Class<? super T> getSuperclass()
          この Class で表されるエンティティ (クラス、インタフェース、プリミティブ型、または void) のスーパークラスを表す Class を返します。
 TypeVariable<Class<T>>[] getTypeParameters()
          GenericDeclaration オブジェクトによって表される汎用的な宣言で宣言された型変数を表す TypeVariable オブジェクトの配列を宣言順に返します。
 boolean isAnnotation()
          Class オブジェクトが注釈型を表す場合は true を返します。
 boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
          指定された型の注釈がこの要素に存在する場合は true を返し、そうでない場合は false を返します。
 boolean isAnonymousClass()
          基本となるクラスが匿名クラスである場合だけ true を返します。
 boolean isArray()
          この Class オブジェクトが配列クラスを表すかどうかを判定します。
 boolean isAssignableFrom(Class<?> cls)
          この Class オブジェクトが表すクラスまたはインタフェースが、指定された Class パラメータが表すクラスまたはインタフェースと等しいかどうか、あるいはそのスーパークラスあるいはスーパーインタフェースであるかどうかを判定します。
 boolean isEnum()
          このクラスがソースコードで enum として宣言された場合だけ true を返します。
 boolean isInstance(Object obj)
          指定された Object が、この Class が表すオブジェクトと代入互換の関係にあるかどうかを判定します。
 boolean isInterface()
          指定された Class オブジェクトがインタフェース型を表すかどうかを判定します。
 boolean isLocalClass()
          基本となるクラスがローカルクラスである場合だけ true を返します。
 boolean isMemberClass()
          基本となるクラスがメンバクラスである場合だけ true を返します。
 boolean isPrimitive()
          指定された Class オブジェクトがプリミティブ型を表すかどうかを判定します。
 boolean isSynthetic()
          このクラスが合成クラスである場合は true を返し、そうでない場合は false を返します。
 T newInstance()
          この Class オブジェクトが表すクラスの新しいインスタンスを生成します。
 String toString()
          オブジェクトを文字列に変換します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

メソッドの詳細

toString

public String toString()
オブジェクトを文字列に変換します。その文字列は、「class」または「interface」などの文字列、空白、getName が返す形式の完全修飾クラス名という順序で表現されます。この Class オブジェクトがプリミティブ型を表す場合、このメソッドはプリミティブ型の名前を返し、void を表す場合は、「void」を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクトの文字列表現

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 で指定された、ロード、リンク、または初期化に関連するエラーをスローします。このメソッドは、要求されたクラスが呼び出し側からアクセス可能であるかどうかをチェックしません。

loadernull で、セキュリティマネージャが存在し、呼び出し側のクラスローダが null でない場合、このメソッドはセキュリティマネージャの checkPermission メソッドを RuntimePermission("getClassLoader") のアクセス権を使って呼び出すことによって、ブートストラップクラスローダに問題なくアクセスできることを保証します。

パラメータ:
name - 要求するクラスの完全修飾名
initialize - クラスを初期化する必要の有無
loader - クラスのロード元である必要があるクラスローダ
戻り値:
要求するクラスを表すクラスオブジェクト
例外:
LinkageError - リンケージに失敗した場合
ExceptionInInitializerError - このメソッドによる初期化に失敗した場合
ClassNotFoundException - 指定されたクラスローダによってクラスが見つからなかった場合
導入されたバージョン:
1.2
関連項目:
forName(String), ClassLoader

newInstance

public T newInstance()
              throws InstantiationException,
                     IllegalAccessException
この Class オブジェクトが表すクラスの新しいインスタンスを生成します。new 式に空の引数リストを指定した場合と同じように、クラスのインスタンスが生成されます。クラスは、初期化されていなければ初期化されます。

このメソッドは確認済み例外など、nullary コンストラクタによってスローされた例外を送ることに注意してください。このメソッドを使用することで、その他の場合にはコンパイラによって実行されるコンパイル時の例外確認を効果的にバイパスできます。Constructor.newInstance メソッドは、(確認済みの) InvocationTargetException のコンストラクタによってスローされた例外をラップすることで、この問題を回避します。

戻り値:
このオブジェクトが表す、クラスの新しく割り当てられたインスタンス
例外:
IllegalAccessException - クラスまたはその nullary コンストラクタにアクセスできない場合
InstantiationException - この Class が抽象クラス、インタフェース、配列クラス、プリミティブ型、または void を表す場合、クラスが nullary コンストラクタを保持しない場合、あるいはインスタンスの生成がほかの理由で失敗した場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.PUBLIC) の呼び出しがこのクラスの新規インスタンスの作成を許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと 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
導入されたバージョン:
JDK1.1

isAssignableFrom

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

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

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

isInterface

public boolean isInterface()
指定された Class オブジェクトがインタフェース型を表すかどうかを判定します。

戻り値:
このオブジェクトがインタフェースを表す場合は true、そうでない場合は false

isArray

public boolean isArray()
この Class オブジェクトが配列クラスを表すかどうかを判定します。

戻り値:
このオブジェクトが配列クラスを表す場合は true、そうでない場合は false
導入されたバージョン:
JDK1.1

isPrimitive

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

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

これらのオブジェクトには、以下の public static final 変数を使う方法によってのみアクセスできます。また、このメソッドが true を返すのは、これらの 9 つの Class オブジェクトに限定されます。

戻り値:
このクラスがプリミティブ型を表す場合に限り true
導入されたバージョン:
JDK1.1
関連項目:
Boolean.TYPE, Character.TYPE, Byte.TYPE, Short.TYPE, Integer.TYPE, Long.TYPE, Float.TYPE, Double.TYPE, Void.TYPE

isAnnotation

public boolean isAnnotation()
Class オブジェクトが注釈型を表す場合は true を返します。すべての注釈型はインタフェースでもあるので、このメソッドが true を返すと、isInterface() も true を返します。

戻り値:
このクラスオブジェクトが注釈型を表す場合は true、そうでない場合は false
導入されたバージョン:
1.5

isSynthetic

public boolean isSynthetic()
このクラスが合成クラスである場合は true を返し、そうでない場合は false を返します。

戻り値:
このクラスが Java 言語仕様で定義されている合成クラスである場合に限り、true
導入されたバージョン:
1.5

getName

public String getName()
この Class オブジェクトが表すエンティティ (クラス、インタフェース、配列クラス、プリミティブ型、または void) の名前を、String として返します。

『Java 言語仕様第 2 版』で規定されているように、このクラスオブジェクトが配列型ではない参照型を表す場合は、クラスのバイナリ名が返されます。

このクラスオブジェクトがプリミティブ型または void を表す場合、返される名前はプリミティブ型または void に対応する Java 言語キーワードと等価な String です。

このクラスオブジェクトが配列のクラスを表す場合、名前の内部形式は、配列の入れ子の深さを表す 1 つ以上の「[」文字、要素型の名前という順序で構成されます。要素型の名前のエンコーディングは、以下のとおりです。

要素型 エンコーディング
boolean Z
byte B
char C
class または interface Lclassname;
double D
float F
int I
long J
short S

クラス名またはインタフェース名の classname は、上記の例のようにクラスのバイナリ名で指定されます。

例:

 String.class.getName() returns "java.lang.String" byte.class.getName() returns "byte" (new Object[3]).getClass().getName() returns "[Ljava.lang.Object;" (new int[3][4][5][6][7][8][9]).getClass().getName() returns "[[[[[[[I" 

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

getClassLoader

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

セキュリティマネージャが存在し、呼び出し側のクラスローダが null でなく、クラスローダが必要とされるクラスのクラスローダの上位ローダでもない場合、このメソッドはセキュリティマネージャの checkPermission メソッドを RuntimePermission("getClassLoader") のアクセス権を使って呼び出すことによってクラスのクラスローダにアクセスできるかどうかを確認します。

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

戻り値:
このオブジェクトが表すクラスまたはインタフェースをロードしたクラスローダ
例外:
SecurityException - セキュリティマネージャが存在し、その checkPermission メソッドがクラスのクラスローダへのアクセスを拒否する場合
関連項目:
ClassLoader, SecurityManager.checkPermission(java.security.Permission), RuntimePermission

getTypeParameters

public TypeVariable<Class<T>>[] getTypeParameters()
GenericDeclaration オブジェクトによって表される汎用的な宣言で宣言された型変数を表す TypeVariable オブジェクトの配列を宣言順に返します。基になる汎用的な宣言で型変数が宣言されていない場合は、長さ 0 の配列が返されます。

定義:
インタフェース GenericDeclaration 内の getTypeParameters
戻り値:
この汎用的な宣言で宣言された型変数を表す TypeVariable オブジェクトの配列
例外:
GenericSignatureFormatError - この汎用的な宣言の汎用的な署名が『Java 仮想マシン仕様第 3 版』で規定される書式に適合しない場合
導入されたバージョン:
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 仮想マシン仕様第 3 版』で規定される書式に適合しない場合
TypeNotPresentException - 汎用的なスーパークラスが、存在しない型宣言を参照する場合
MalformedParameterizedTypeException - 汎用的なスーパークラスが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合
導入されたバージョン:
1.5

getPackage

public Package getPackage()
このクラスのパッケージを取得します。パッケージを探すには、このクラスのクラスローダが使用されます。ブートストラップクラスローダがクラスをロードした場合、CLASSPATH からロードされたパッケージのセットを検索してクラスのパッケージを見つけます。このクラスのクラスローダがパッケージオブジェクトを生成しなかった場合は、null が返されます。

クラスに付属するマニフェストで情報が定義された場合と、クラスローダがマニフェストの属性を持つパッケージインスタンスを生成した場合だけ、パッケージはバージョンと仕様の属性を持ちます。

戻り値:
クラスのパッケージ。アーカイブまたはコードベースのパッケージの情報が利用できない場合は null

getInterfaces

public Class[] getInterfaces()
このオブジェクトが表すクラスまたはインタフェースによって実装されるインタフェースを取得します。

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

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

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

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

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

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

getGenericInterfaces

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

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

このオブジェクトがクラスを表す場合、戻り値は、クラスによって実装されるすべてのインタフェースを表すオブジェクトを格納している配列です。配列内のインタフェースオブジェクトの順序は、このオブジェクトが表すクラスを宣言する implements 節内のインタフェース名の順序に一致します。配列クラスの場合、Cloneable インタフェースと Serializable インタフェースはその順序で返されます。

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

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

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

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

getComponentType

public Class<?> getComponentType()
配列のコンポーネント型を表す Class を返します。このクラスが配列クラスを表さない場合、このメソッドは null を返します。

戻り値:
このクラスが配列の場合、このクラスのコンポーネント型を示す Class
導入されたバージョン:
JDK1.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 仮想マシン仕様』の表 4.1 で定義されています。

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

getSigners

public Object[] getSigners()
このクラスの署名者を取得します。

戻り値:
このクラスの署名者。署名者がない場合は null。特にこのメソッドは、このオブジェクトがプリミティブ型または void を表す場合には null を返す
導入されたバージョン:
JDK1.1

getEnclosingMethod

public Method getEnclosingMethod()
この Class オブジェクトが、メソッド内のローカルクラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表す Method オブジェクトを返します。そうでない場合、null を返します。 特に、基本となるクラスが、型宣言、インスタンス初期化子、スタティック初期化子により直接囲まれるローカルクラスまたは匿名クラスである場合、このメソッドは null を返します。

戻り値:
クラスがローカルクラスまたは匿名クラスの場合、基本となるクラスを直接囲むメソッド。そうでない場合は null
導入されたバージョン:
1.5

getEnclosingConstructor

public Constructor<?> getEnclosingConstructor()
この Class オブジェクトが、コンストラクタ内のローカルクラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表す Constructor オブジェクトを返します。そうでない場合は null。特に、基本となるクラスが、型宣言、インスタンス初期化子、またはスタティック初期化子により直接囲まれるローカルクラスまたは匿名クラスである場合、このメソッドは null を返します。

戻り値:
クラスがローカルクラスまたは匿名クラスの場合、基本となるクラスを直接囲むコンストラクタ。そうでない場合は null
導入されたバージョン:
1.5

getDeclaringClass

public Class<?> getDeclaringClass()
この Class オブジェクトが表すクラスまたはインタフェースが別のクラスのメンバの場合は、それが宣言されたクラスを表す Class オブジェクトを返します。このクラスまたはインタフェースがほかのクラスのメンバでない場合は、null を返します。この Class オブジェクトが配列クラス、プリミティブ型、または void を表す場合、このメソッドは null を返します。

戻り値:
このクラスを宣言するクラス
導入されたバージョン:
JDK1.1

getEnclosingClass

public Class<?> getEnclosingClass()
基本となるクラスを直接囲むクラスを返します。基本となるクラスがトップレベルクラスである場合、nullを返します。

戻り値:
基本となるクラスを直接囲むクラス
導入されたバージョン:
1.5

getSimpleName

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

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

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

getCanonicalName

public String getCanonicalName()
Java 言語仕様の定義に従って、基本となるクラスの標準名を返します。基本となるクラスが標準名を持たない場合 (ローカルクラスや匿名クラス、またはコンポーネント型が標準名を持たない配列の場合)、null を返します。

戻り値:
存在する場合は基本となるクラスの標準名。そうでない場合は null
導入されたバージョン:
1.5

isAnonymousClass

public boolean isAnonymousClass()
基本となるクラスが匿名クラスである場合だけ true を返します。

戻り値:
このクラスが匿名クラスである場合だけ true
導入されたバージョン:
1.5

isLocalClass

public boolean isLocalClass()
基本となるクラスがローカルクラスである場合だけ true を返します。

戻り値:
このクラスがローカルクラスである場合だけ true
導入されたバージョン:
1.5

isMemberClass

public boolean isMemberClass()
基本となるクラスがメンバクラスである場合だけ true を返します。

戻り値:
このクラスがメンバクラスである場合だけ true
導入されたバージョン:
1.5

getClasses

public Class[] getClasses()
この Class オブジェクトが表すクラスのメンバである、すべての public クラスおよびインタフェースを表す Class オブジェクトを格納している配列を返します。スーパークラスから継承した public クラスおよびインタフェースのメンバ、ならびにクラスが宣言した public クラスとインタフェースのメンバも含まれます。この Class オブジェクトが public メンバクラスやインタフェースを持たない場合や、プリミティブ型、配列クラス、または void を表す場合には、長さが 0 の配列を返します。

戻り値:
このクラスの public メンバを表す Class オブジェクトの配列
例外:
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.PUBLIC) のメソッドの呼び出しがこのクラス内のクラスへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getFields

public Field[] getFields()
                  throws SecurityException
この Class オブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能な public フィールドをリフレクトする、Field オブジェクトを保持している配列を返します。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。クラスまたはインタフェースにアクセス可能な public フィールドがない場合や、クラスまたはインタフェースが配列クラス、プリミティブ型、または void を表す場合は、長さが 0 の配列を返します。

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

このメソッドは、配列クラスの暗黙的な長さフィールドをリフレクトしません。ユーザコードで配列を操作するには、Array クラスのメソッドを使う必要があります。

『Java 言語仕様』のセクション 8.2 と 8.3 を参照してください。

戻り値:
public フィールドを表す Field オブジェクトの配列
例外:
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.PUBLIC) の呼び出しがこのクラス内のフィールドへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getMethods

public Method[] getMethods()
                    throws SecurityException
この Class オブジェクトが表すクラスまたはインタフェースのすべての public 「メンバ」メソッドをリフレクトする Method オブジェクトを格納している配列を返します。クラスまたはインタフェースが宣言したもの、およびスーパークラスやスーパーインタフェースから継承されたものも含まれます。配列クラスは、Object クラスから継承されたすべての (public) メンバメソッドを返します。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。この Class オブジェクトが public メンバメソッドがないクラスまたはインタフェースを表す場合や、プリミティブ型または void を表す場合は、このメソッドは長さが 0 の配列を返します。

クラス初期化メソッド <clinit> は、返される配列に入っていません。クラスが複数の public メンバメソッドを同じパラメータ型で宣言すると、そのようなメソッドはすべて返された配列に入ります。

『Java 言語仕様』のセクション 8.2 と 8.4 を参照してください。

戻り値:
このクラスの public メソッドを表す Method オブジェクトの配列
例外:
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.PUBLIC) の呼び出しがこのクラス内のメソッドへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getConstructors

public Constructor[] getConstructors()
                              throws SecurityException
この Class オブジェクトが表すクラスのすべての public コンストラクタをリフレクトする Constructor オブジェクトを格納している配列を返します。クラスに public コンストラクタがない場合、クラスが配列クラスの場合、またはクラスがプリミティブ型または void をリフレクトする場合には、長さが 0 の配列を返します。

戻り値:
このクラスの宣言されたすべての public コンストラクタが指定された parameterTypes と一致する場合、Method オブジェクトを含む配列
例外:
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.PUBLIC) の呼び出しがこのクラス内のコンストラクタへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.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 がスローされます。

『Java 言語仕様』のセクション 8.2 と 8.3 を参照してください。

パラメータ:
name - フィールド名
戻り値:
name で指定されたこのクラスの Field オブジェクト
例外:
NoSuchFieldException - 指定された名前のフィールドが見つからない場合
NullPointerException - namenull の場合
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.PUBLIC) の呼び出しがこのフィールドへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getMethod

public Method getMethod(String name,
                        Class... parameterTypes)
                 throws NoSuchMethodException,
                        SecurityException
この Class オブジェクトが表すクラスまたはインタフェースの指定された public メンバメソッドをリフレクトする Method オブジェクトを返します。name パラメータは、要求されるメソッドに単純名を指定する String です。parameterTypes パラメータは、メソッドの仮パラメータ型を宣言された順序で識別する Class オブジェクトの配列です。parameterTypesnull の場合は、空の配列のように扱われます。

name が「<init>」または「<clinit>」の場合、NoSuchMethodException がスローされます。そうでない場合、リフレクトされるメソッドは、次のアルゴリズムで指定されます。ここでは、このオブジェクトが表すクラスを C とします。

  1. C を検索して、「一致するメソッド」を見つけます。一致するメソッドが見つからない場合は、ステップ 1 のアルゴリズムが C のスーパークラスに対して再帰的に呼び出されます。
  2. 上記のステップ 1 でメソッドが見つからなかった場合は、C のスーパーインタフェースを検索して一致するメソッドを見つけます。一致するメソッドが見つかった場合は、それがリフレクトされます。
C: クラスでの一致するメソッドは、次のようにして見つけられます。C が、同じ仮パラメータ型を持ち、指定された名前を持つ public メソッドをただ 1 つ宣言する場合、そのメソッドはリフレクトされます。そのようなメソッドが C で複数見つかって、そのメソッドの 1 つがそれ以外のどれよりも明確な戻り値の型を持つ場合には、そのメソッドがリフレクトされます。そうでない場合は、相応するメソッドの 1 つが任意に選択されます。

『Java 言語仕様』のセクション 8.2 と 8.4 を参照してください。

パラメータ:
name - メソッドの名前
parameterTypes - パラメータのリスト
戻り値:
指定された name および parameterTypes と一致する Method オブジェクト
例外:
NoSuchMethodException - 一致するメソッドが見つからない場合、あるいは名前が「<init>」または「<clinit>」の場合
NullPointerException - namenull の場合
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.PUBLIC) の呼び出しがこのメソッドへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getConstructor

public Constructor<T> getConstructor(Class... parameterTypes)
                              throws NoSuchMethodException,
                                     SecurityException
この Class オブジェクトが表すクラスの指定された public コンストラクタをリフレクトする Constructor オブジェクトを返します。parameterTypes パラメータは、コンストラクタの仮パラメータ型を宣言された順序で識別する Class オブジェクトの配列です。

リフレクトするコンストラクタは、parameterTypes に指定された型と一致する仮パラメータ型を持つ、この Class オブジェクトが表すクラスの public コンストラクタです。

パラメータ:
parameterTypes - パラメータ配列
戻り値:
指定された parameterTypes と一致する public コンストラクタの Method オブジェクト
例外:
NoSuchMethodException - 一致するメソッドが見つからない場合
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.PUBLIC) の呼び出しがこのコンストラクタへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getDeclaredClasses

public Class[] getDeclaredClasses()
                           throws SecurityException
この Class オブジェクトが表すクラスのメンバとして宣言されたすべてのクラスおよびインタフェースをリフレクトする Class オブジェクトの配列を返します。これには、クラスが宣言した public、protected、デフォルト (package) アクセス、および private クラスとインタフェースは含まれますが、継承クラスとインタフェースは含まれません。このメソッドは、クラスがメンバとしてクラスまたはインタフェースを宣言していない場合や、この Class オブジェクトがプリミティブ型、配列クラス、または void を表す場合には、長さが 0 の配列を返します。

戻り値:
このクラスの宣言されたすべてのメンバを表す Class オブジェクトの配列
例外:
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.DECLARED) の呼び出しがこのクラス内の宣言されたクラスへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getDeclaredFields

public Field[] getDeclaredFields()
                          throws SecurityException
この Class オブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのフィールドをリフレクトする Field オブジェクトの配列を返します。これには、public、protected、デフォルト (package) アクセス、および private フィールドは含まれますが、継承フィールドは含まれません。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。このメソッドは、クラスまたはインタフェースがフィールドを宣言しない場合や、この Class オブジェクトがプリミティブ型、配列クラス、または void を表す場合には、長さが 0 の配列を返します。

『Java 言語仕様』のセクション 8.2 と 8.3 を参照してください。

戻り値:
このクラスの宣言されたすべてのメンバを表す Field オブジェクトの配列
例外:
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.DECLARED) の呼び出しがこのクラス内の宣言されたフィールドへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getDeclaredMethods

public Method[] getDeclaredMethods()
                            throws SecurityException
この Class オブジェクトが表すクラスまたはインタフェースによって宣言されたすべてのメソッドをリフレクトする Method オブジェクトの配列を返します。これには、public、protected、デフォルト (package) アクセス、および private メソッドは含まれますが、継承メソッドは含まれません。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。このメソッドは、クラスまたはインタフェースがメソッドを宣言しない場合や、この Class オブジェクトがプリミティブ型、配列クラス、または void を表す場合は、長さが 0 の配列を返します。クラス初期化メソッド <clinit> は、返された配列にはありません。クラスが同じパラメータ型を持つ複数の public メンバメソッドを宣言する場合、それらのメソッドは、すべて返された配列にあります。

「Java 言語仕様」のセクション 8.2 を参照してください。

戻り値:
このクラスの宣言されたすべてのメソッドを表す Method オブジェクトの配列
例外:
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.DECLARED) の呼び出しがこのクラス内の宣言されたメソッドへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getDeclaredConstructors

public Constructor[] getDeclaredConstructors()
                                      throws SecurityException
この Class オブジェクトが表すクラスによって宣言されたすべてのコンストラクタをリフレクトする Constructor オブジェクトの配列を返します。これらは、public、protected、デフォルト (package) アクセス、および private コンストラクタです。返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。クラスがデフォルトのコンストラクタを持つ場合、このコンストラクタは返された配列にあります。このメソッドは、この Class オブジェクトがインタフェース、プリミティブ型、配列クラス、または void を表す場合には長さが 0 の配列を返します。

「Java 言語仕様」のセクション 8.2 を参照してください。

戻り値:
このクラスの宣言されたすべてのコンストラクタを表す Method オブジェクトの配列
例外:
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.DECLARED) の呼び出しがこのクラス内の宣言されたコンストラクタへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getDeclaredField

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

パラメータ:
name - フィールドの名前
戻り値:
このクラスに指定されたフィールドの Field オブジェクト
例外:
NoSuchFieldException - 指定された名前のフィールドが見つからない場合
NullPointerException - namenull の場合
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.DECLARED) の呼び出しが宣言されたフィールドへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getDeclaredMethod

public Method getDeclaredMethod(String name,
                                Class... parameterTypes)
                         throws NoSuchMethodException,
                                SecurityException
この Class オブジェクトが表すクラスまたはインタフェースの指定された宣言メソッドをリフレクトする Method オブジェクトを返します。name パラメータは、要求されたメソッドの単純名を指定する String です。parameterTypes パラメータは、メソッドの仮パラメータ型を宣言順に識別する Class オブジェクトの配列です。同じパラメータ型を持つ複数のメソッドが 1 つのクラスで宣言され、そうしたメソッドの 1 つがそれ以外のどれよりも明確な戻り値の型を持つ場合には、そのメソッドが返されます。そうでない場合、メソッドの 1 つが任意に選択されます。名前が 「<init>」または「<clinit>」の場合は、NoSuchMethodException がスローされます。

パラメータ:
name - メソッドの名前
parameterTypes - パラメータ配列
戻り値:
このクラスの指定された名前とパラメータと一致するメソッドの Method オブジェクト
例外:
NoSuchMethodException - 一致するメソッドが見つからない場合
NullPointerException - namenull の場合
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.DECLARED) の呼び出しが宣言されたメソッドへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getDeclaredConstructor

public Constructor<T> getDeclaredConstructor(Class... parameterTypes)
                                      throws NoSuchMethodException,
                                             SecurityException
この Class オブジェクトが表すクラスまたはインタフェースの指定されたコンストラクタをリフレクトする Constructor オブジェクトを返します。parameterTypes パラメータは、コンストラクタの仮パラメータ型を宣言順に識別する Class オブジェクトの配列です。

パラメータ:
parameterTypes - パラメータ配列
戻り値:
指定されたパラメータリストを持つコンストラクタの Method オブジェクト
例外:
NoSuchMethodException - 一致するメソッドが見つからない場合
SecurityException - セキュリティマネージャ s が存在し、以下の条件のどれかが満たされる場合
  • s.checkMemberAccess(this, Member.DECLARED) の呼び出しが宣言されたコンストラクタへのアクセスを許可しない
  • 呼び出し側のクラスローダが同じでないか、現在のクラスローダの上位クラスローダと s.checkPackageAccess() の呼び出しがこのクラスのパッケージへのアクセスを許可しない
導入されたバージョン:
JDK1.1

getResourceAsStream

public InputStream getResourceAsStream(String name)
指定された名前のリソースを探します。指定されたクラスに関連したリソースを検索する規則は、クラスのクラスローダを定義して実装されます。このメソッドは、このオブジェクトのクラスローダに委譲されます。このオブジェクトがブートストラップクラスローダによってロードされた場合、メソッドは ClassLoader.getSystemResourceAsStream(java.lang.String) に委譲されます。

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

パラメータ:
name - 要求されるリソースの名前
戻り値:
InputStream オブジェクト、 この名前のリソースが見つからなかった場合は null
例外:
NullPointerException - namenull
導入されたバージョン:
JDK1.1

getResource

public URL getResource(String name)
指定された名前のリソースを探します。指定されたクラスに関連したリソースを検索する規則は、クラスのクラスローダを定義して実装されます。このメソッドは、このオブジェクトのクラスローダに委譲されます。このオブジェクトがブートストラップクラスローダによってロードされた場合、メソッドは ClassLoader.getSystemResource(java.lang.String) に委譲されます。

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

パラメータ:
name - 要求されるリソースの名前
戻り値:
URL オブジェクト、 この名前のリソースが見つからなかった場合は null
導入されたバージョン:
JDK1.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 オブジェクトの型をナロー変換する必要がある場合に役立ちます。(汎用型はイレイジャによって実装されるので) キャストの正確性を実行時に確認することはできないため、キャストによってコンパイル時の警告が生成されます。

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

getAnnotation

public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
指定された型の注釈が存在する場合は、指定された型の要素の注釈を返します。そうでない場合は null を返します。

定義:
インタフェース AnnotatedElement 内の getAnnotation
パラメータ:
annotationClass - 注釈型に対応する Class オブジェクト
戻り値:
存在する場合は、指定された注釈型の要素の注釈。そうでない場合は null

isAnnotationPresent

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

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

getAnnotations

public Annotation[] getAnnotations()
この要素に存在するすべての注釈を返します (この要素に注釈がない場合は長さゼロの配列を返します)。このメソッドの呼び出し元は、返された配列を自由に変更できます。この変更は、他の呼び出し元に返された配列に影響を及ぼしません。

定義:
インタフェース AnnotatedElement 内の getAnnotations
戻り値:
この要素に存在するすべての注釈

getDeclaredAnnotations

public Annotation[] getDeclaredAnnotations()
この要素に直接存在するすべての注釈を返します。このインタフェースにある他のメソッドとは異なり、このメソッドは継承された注釈を無視します (この要素に注釈が直接存在しない場合は長さゼロの配列を返す)。このメソッドの呼び出し元は、返された配列を自由に変更できます。この変更は、他の呼び出し元に返された配列に影響を及ぼしません。

定義:
インタフェース AnnotatedElement 内の getDeclaredAnnotations
戻り値:
この要素に直接存在するすべての注釈

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。