T
- このClass
オブジェクトでモデル化されるクラスの型。たとえば、String.class
の型はClass<String>
である。モデル化するクラスが不明な場合はClass<?>
を使用する。public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement
Class
クラスのインスタンスは、実行中のJavaアプリケーションのクラスおよびインタフェースを表します。列挙はクラスの一種、注釈はインタフェースの一種です。同様にどの配列も、同じ要素のタイプおよび次元数を持つすべての配列により共有されるClass
オブジェクトとしてリフレクトされるクラスに属します。プリミティブJava型(boolean
、byte
、char
、short
、int
、long
、float
、およびdouble
)やキーワードvoid
も、Class
オブジェクトとして表されます。
Class
には、publicコンストラクタはありません。Class
オブジェクトは、クラスがロードされる際にJava Virtual Machineによって、およびクラス・ローダーのdefineClass
メソッドの呼出しによって自動的に構築されます。
以下の例では、Class
オブジェクトを使ってオブジェクトのクラス名を出力します。
void printClassName(Object obj) { System.out.println("The class of " + obj + " is " + obj.getClass().getName()); }
クラス・リテラルを使って、名前付き型(またはvoid)のためのClass
オブジェクトを取得することもできます。『Java(tm)言語仕様』のセクション15.8.2を参照してください。例を示します。
System.out.println("The name of class Foo is: "+Foo.class.getName());
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 オブジェクトを返します。 |
AnnotatedType[] |
getAnnotatedInterfaces()
Class オブジェクトによって表されるエンティティのスーパーインタフェースを指定する型の使用を表すAnnotatedType オブジェクトの配列を返します。 |
AnnotatedType |
getAnnotatedSuperclass()
Class オブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedType オブジェクトを返します。 |
<A extends Annotation> |
getAnnotation(Class<A> annotationClass)
存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。
|
Annotation[] |
getAnnotations()
この要素に存在する注釈を返します。
|
<A extends Annotation> |
getAnnotationsByType(Class<A> annotationClass)
この要素に関連付けられている注釈を返します。
|
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 オブジェクトを格納している配列を返します。 |
<A extends Annotation> |
getDeclaredAnnotation(Class<A> annotationClass)
直接存在する場合は、この要素の指定された型の注釈を返し、そうでない場合はnullを返します。
|
Annotation[] |
getDeclaredAnnotations()
この要素に直接存在する注釈を返します。
|
<A extends Annotation> |
getDeclaredAnnotationsByType(Class<A> annotationClass)
直接存在するか間接的に存在する場合は、この要素の指定された型の注釈を返します。
|
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 オブジェクトが格納された配列を返します。これには、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言語修飾子を整数型に符号化して返します。
|
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 を返します。 |
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(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 |
toGenericString()
修飾子と型パラメータに関する情報を含む、この
Class を記述する文字列を返します。 |
String |
toString()
オブジェクトを文字列に変換します。
|
public String toString()
getName
が返す形式の完全指定クラス名という順序で表現されます。このClass
オブジェクトがプリミティブ型を表す場合、このメソッドはプリミティブ型の名前を返します。このClass
オブジェクトがvoidを表す場合は、「void」を返します。public String toGenericString()
Class
を記述する文字列を返します。この文字列の書式は、存在する場合は型修飾子、型の種類(必要に応じて、プリミティブ型を表す空の文字列およびclass
、enum
、interface
、または@
interface
)、型の名前、山カッコで囲まれたカンマ区切りの型の型パラメータのリストが順番に続きます。修飾子同士、およびいずれかの修飾子と型の種類との区切りには空白が1つ使用されます。修飾子は正規の順序で返されます。型パラメータがない場合、型パラメータのリストは省略されます。
型の実行時表現に関する情報が生成されるため、元のソース・コードにない修飾子または元のソース・コードで不正な修飾子が存在する可能性があることに注意してください。
Class
を記述する文字列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
- クラスが見つからなかった場合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で指定された、ロード、リンク、または初期化に関連するエラーをスローします。このメソッドは、要求されたクラスが呼出し側からアクセス可能であるかどうかをチェックしません。
loader
がnull
で、セキュリティ・マネージャが存在し、呼出し側のクラス・ローダーがnullでない場合、このメソッドはセキュリティ・マネージャのcheckPermission
メソッドをRuntimePermission("getClassLoader")
のアクセス権を使って呼び出すことによって、ブートストラップ・クラス・ローダーに問題なくアクセスできることを保証します。
name
- 要求するクラスの完全指定の名前initialize
- true
の場合、そのクラスが初期化される。『Java言語仕様』のセクション12.4を参照してください。loader
- クラスのロード元である必要があるクラス・ローダーLinkageError
- リンケージに失敗した場合ExceptionInInitializerError
- このメソッドによる初期化に失敗した場合ClassNotFoundException
- 指定されたクラス・ローダーによってクラスが見つからなかった場合forName(String)
, ClassLoader
public T newInstance() throws InstantiationException, IllegalAccessException
Class
オブジェクトが表すクラスの新しいインスタンスを作成します。new
式に空の引数リストを指定した場合と同じように、クラスのインスタンスが生成されます。クラスは、初期化されていなければ初期化されます。
このメソッドはチェック例外など、引数なしのコンストラクタによってスローされた例外を送ることに注意してください。このメソッドを使用することで、その他の場合にはコンパイラによって実行されるコンパイル時の例外確認を効果的にバイパスできます。Constructor.newInstance
メソッドはこの問題を回避するため、コンストラクタからスローされる任意の例外を、(チェックされる) InvocationTargetException
内にラップします。
IllegalAccessException
- クラスまたはその引数なしのコンストラクタにアクセスできない場合。InstantiationException
- このClass
が抽象クラス、インタフェース、配列クラス、プリミティブ型、またはvoidを表す場合、クラスが引数なしのコンストラクタを保持しない場合、あるいはインスタンスの生成がほかの理由で失敗した場合。ExceptionInInitializerError
- このメソッドによる初期化に失敗した場合。SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合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
がこのクラスのインスタンスの場合はtruepublic 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の場合。public boolean isInterface()
Class
オブジェクトがインタフェース型を表すかどうかを判定します。true
、そうでない場合はfalse
。public boolean isArray()
Class
オブジェクトが配列クラスを表すかどうかを判定します。true
、そうでない場合はfalse
。public boolean isPrimitive()
Class
オブジェクトがプリミティブ型を表すかどうかを判定します。
8つのJavaのプリミティブ型とvoidを表す、9つの定義済みClass
オブジェクトがあります。これらはJava仮想マシンが作成し、該当するプリミティブ型と同じ名前を持ちます。つまり、boolean
、byte
、char
、short
、int
、long
、float
、およびdouble
です。
これらのオブジェクトには、public static final変数を使う方法によってのみアクセスできます。また、このメソッドがtrue
を返すのは、これらの9つのClass
オブジェクトに限定されます。
Boolean.TYPE
, Character.TYPE
, Byte.TYPE
, Short.TYPE
, Integer.TYPE
, Long.TYPE
, Float.TYPE
, Double.TYPE
, Void.TYPE
public boolean isAnnotation()
Class
オブジェクトが注釈型を表す場合はtrueを返します。すべての注釈型はインタフェースでもあるので、このメソッドがtrueを返すと、isInterface()
もtrueを返します。true
、それ以外の場合はfalse
public boolean isSynthetic()
true
を返し、そうでない場合はfalse
を返します。true
。public String getName()
Class
オブジェクトが表すエンティティ(クラス、インタフェース、配列クラス、プリミティブ型、またはvoid)の名前を、String
として返します。
『Java(tm)言語仕様』で規定されているように、このクラス・オブジェクトが配列型ではない参照型を表す場合は、クラスのバイナリ名が返されます。
このクラス・オブジェクトがプリミティブ型または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"
public ClassLoader getClassLoader()
セキュリティ・マネージャが存在し、呼出し側のクラス・ローダーがnullでなく、クラス・ローダーが必要とされるクラスのクラス・ローダーの上位ローダーでもない場合、このメソッドはセキュリティ・マネージャのcheckPermission
メソッドをRuntimePermission("getClassLoader")
のアクセス権を使って呼び出すことによってクラスのクラス・ローダーに問題なくアクセスできることを保証します。
このオブジェクトがプリミティブ型またはvoidを表す場合は、nullが返されます。
SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドがクラスのクラス・ローダーへのアクセスを拒否する場合。ClassLoader
, SecurityManager.checkPermission(java.security.Permission)
, RuntimePermission
public TypeVariable<Class<T>>[] getTypeParameters()
GenericDeclaration
オブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariable
オブジェクトの配列を宣言順に返します。基になるジェネリック宣言で型変数が宣言されていない場合は、長さ0の配列が返されます。getTypeParameters
、インタフェース: GenericDeclaration
TypeVariable
オブジェクトの配列GenericSignatureFormatError
- このジェネリック宣言のジェネリック・シグネチャが『Java(tm)仮想マシン仕様』で規定される書式に適合しない場合public Class<? super T> getSuperclass()
Class
で表されるエンティティ(クラス、インタフェース、プリミティブ型、またはvoid)のスーパー・クラスを表すClass
を返します。このClass
が、Object
クラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。このオブジェクトが配列クラスを表す場合は、Object
クラスを表すClass
オブジェクトが返されます。public Type getGenericSuperclass()
Class
で表されるエンティティ(クラス、インタフェース、プリミティブ型、またはvoid)の直接のスーパー・クラスを表すType
を返します。
スーパー・クラスがパラメータ化された型の場合、返されるType
オブジェクトは、ソース・コードで使用される実際の型パラメータを反映しなければいけません。スーパー・クラスを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedType
の宣言を参照してください。このClass
が、Object
クラス、インタフェース、プリミティブ型、またはvoidを表す場合、nullが返されます。このオブジェクトが配列クラスを表す場合は、Object
クラスを表すClass
オブジェクトが返されます。
GenericSignatureFormatError
- ジェネリック・クラスのシグネチャが『Java(tm)仮想マシン仕様』で規定される書式に適合しない場合TypeNotPresentException
- ジェネリック・スーパークラスが、存在しない型宣言を参照する場合MalformedParameterizedTypeException
- ジェネリック・スーパークラスが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合public Package getPackage()
クラスに付属するマニフェストで情報が定義された場合と、クラス・ローダーがマニフェストの属性を持つパッケージ・インスタンスを生成した場合にだけ、パッケージはバージョンと仕様の属性を持ちます。
public Class<?>[] getInterfaces()
このオブジェクトがクラスを表す場合、戻り値は、クラスによって実装されるすべてのインタフェースを表すオブジェクトを格納している配列です。配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すクラスを宣言するimplements
節内のインタフェース名の順序に一致します。たとえば、
class Shimmer implements FloorWax, DessertTopping { ... }
という宣言があり、s
の値がShimmer
のインスタンスであるとします。
s.getClass().getInterfaces()[0]
という式の値はFloorWax
インタフェースを表すClass
オブジェクトであり、
s.getClass().getInterfaces()[1]
という式の値は、DessertTopping
インタフェースを表すClass
オブジェクトです。
このオブジェクトがインタフェースを表す場合、そのインタフェースによって拡張されたすべてのインタフェースを表すオブジェクトが配列内に入ります。配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すインタフェースを宣言するextends
節内のインタフェース名の順序に一致します。
このオブジェクトがインタフェースを実装しないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。
このオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドは長さが0の配列を返します。
このClass
オブジェクトが配列型を表す場合、Cloneable
インタフェースとjava.io.Serializable
インタフェースはその順序で返されます。
public Type[] getGenericInterfaces()
Type
を返します。
スーパー・インタフェースがパラメータ化された型の場合、返されるType
オブジェクトは、ソース・コードで使用される実際の型パラメータを反映しなければいけません。スーパー・インタフェースを表すパラメータ化された型は、以前作成されていなかった場合に作成されます。パラメータ化された型の作成プロセスのセマンティックスについては、ParameterizedType
の宣言を参照してください。
このオブジェクトがクラスを表す場合、戻り値は、クラスによって実装されるすべてのインタフェースを表すオブジェクトを格納している配列です。配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すクラスを宣言するimplements
節内のインタフェース名の順序に一致します。配列クラスの場合、Cloneable
インタフェースとSerializable
インタフェースはその順序で返されます。
このオブジェクトがインタフェースを表す場合、そのインタフェースによって直接拡張されたすべてのインタフェースを表すオブジェクトが配列内に入ります。配列内のインタフェース・オブジェクトの順序は、このオブジェクトが表すインタフェースを宣言するextends
節内のインタフェース名の順序に一致します。
このオブジェクトがインタフェースを実装しないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。
このオブジェクトがプリミティブ型またはvoidを表す場合、このメソッドは長さが0の配列を返します。
GenericSignatureFormatError
- ジェネリック・クラスのシグネチャが『Java(tm)仮想マシン仕様』で規定される書式に適合しない場合TypeNotPresentException
- ジェネリック・スーパーインタフェースのどれかが、存在しない型宣言を参照する場合MalformedParameterizedTypeException
- ジェネリック・スーパーインタフェースのどれかが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合public Class<?> getComponentType()
Class
を返します。このクラスが配列クラスを表さない場合、このメソッドはnullを返します。Class
Array
public int getModifiers()
public
、protected
、private
、final
、static
、abstract
、およびinterface
用のJava仮想マシンの定数から構成されます。これらは、Modifier
クラスのメソッドを使ってデコードしなければいけません。
基本となるクラスが配列クラスの場合、public
、private
、およびprotected
の各修飾子はコンポーネント型の修飾子と同じです。このClass
がプリミティブ型またはvoidの場合、public
の各修飾子は常にtrue
で、protected
およびprivate
修飾子は常にfalse
です。このオブジェクトが配列クラス、プリミティブ型、またはvoidを表す場合、final
修飾子は常にtrue
で、そのインタフェース修飾子は常にfalse
です。その他の修飾子の値は、この仕様では判定されません。
修飾子の符号化は、『Java Virtual Machine仕様』の表4.1で定義しています。
int
Modifier
public Object[] getSigners()
public Method getEnclosingMethod() throws SecurityException
Class
オブジェクトが、メソッド内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むメソッドを表すMethod
オブジェクトを返します。それ以外の場合はnull
を返します。特に、基本となるクラスが、型宣言、インスタンス初期化子、または静的初期化子により直接囲まれるローカル・クラスまたは匿名クラスである場合、このメソッドはnull
を返します。null
。SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しが囲むクラス内のメソッドへのアクセスを許可しない
s.checkPackageAccess()
の呼出しが囲むクラスのパッケージへのアクセスを許可しない
public Constructor<?> getEnclosingConstructor() throws SecurityException
Class
オブジェクトが、コンストラクタ内のローカル・クラスまたは匿名クラスを表す場合は、基本となるクラスを直接囲むコンストラクタを表すConstructor
オブジェクトを返します。それ以外の場合はnull
を返します。特に、基本となるクラスが、型宣言、インスタンス初期化子、または静的初期化子により直接囲まれるローカル・クラスまたは匿名クラスである場合、このメソッドはnull
を返します。null
。SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しが囲むクラス内のコンストラクタへのアクセスを許可しない
s.checkPackageAccess()
の呼出しが囲むクラスのパッケージへのアクセスを許可しない
public Class<?> getDeclaringClass() throws SecurityException
Class
オブジェクトが表すクラスまたはインタフェースが別のクラスのメンバーの場合は、それが宣言されたクラスを表すClass
オブジェクトを返します。このクラスまたはインタフェースがほかのクラスのメンバーでない場合は、nullを返します。このClass
オブジェクトが配列クラス、プリミティブ型、またはvoidを表す場合、このメソッドはnullを返します。SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、宣言しているクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しが宣言しているクラスのパッケージへのアクセスを許可しない場合public Class<?> getEnclosingClass() throws SecurityException
null
を返します。SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、囲むクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しが囲むクラスのパッケージへのアクセスを許可しない場合public String getSimpleName()
配列の単純名は、「[]」が付加されたコンポーネント型の単純名です。特に、コンポーネント型が匿名である配列の単純名は、「[]」です。
public String getTypeName()
getTypeName
、インタフェース: Type
public String getCanonicalName()
null
。public boolean isAnonymousClass()
true
を返します。true
。public boolean isLocalClass()
true
を返します。true
。public boolean isMemberClass()
true
を返します。true
。public Class<?>[] getClasses()
Class
オブジェクトが表すクラスのメンバーである、すべてのpublicクラスおよびインタフェースを表すClass
オブジェクトを格納している配列を返します。スーパー・クラスから継承したpublicクラスおよびインタフェースのメンバー、ならびにクラスが宣言したpublicクラスとインタフェースのメンバーも含まれます。このClass
オブジェクトがpublicメンバー・クラスやインタフェースを持たない場合、このメソッドは長さが0の配列を返します。また、このClass
オブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合も、このメソッドは長さが0の配列を返します。Class
オブジェクトの配列SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合public Field[] getFields() throws SecurityException
Class
オブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能なpublicフィールドをリフレクトする、Field
オブジェクトを保持している配列を返します。
このClass
オブジェクトがアクセス可能なpublicフィールドを持たないクラスまたはインタフェースを表す場合、このメソッドは長さが0の配列を返します。
このClass
オブジェクトがクラスを表す場合、このメソッドはこのクラスとそのすべてのスーパー・クラスのpublicフィールドを返します。
このClass
オブジェクトがインタフェースを表す場合、このメソッドはこのインタフェースとそのすべてのスーパー・インタフェースのフィールドを返します。
このClass
オブジェクトが配列型、プリミティブ型、またはvoidを表す場合、このメソッドは長さが0の配列を返します。
返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。
Field
オブジェクトの配列SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合public Method[] getMethods() throws SecurityException
Class
オブジェクトによって表されるクラスまたはインタフェースのすべてのpublicメソッドをリフレクトするMethod
オブジェクトを格納している配列を返します。これには、クラスまたはインタフェースで宣言されたもの、およびスーパー・クラスやスーパー・インタフェースから継承されたものも含まれます。
このClass
オブジェクトが、名前とパラメータ型は同じであるが戻り値の型が異なる複数のpublicメソッドを持つ型を表す場合、返される配列にはそのような各メソッドのMethod
オブジェクトが含まれます。
このClass
オブジェクトがクラス初期化メソッド<clinit>
を持つ型を表す場合、返される配列には対応するMethod
オブジェクトは含まれません。
このClass
オブジェクトが配列型を表す場合、返される配列にはObject
からの配列型によって継承された各publicメソッドのMethod
オブジェクトが含まれます。それには、clone()
のMethod
オブジェクトは含まれません。
このClass
オブジェクトがインタフェースを表す場合、返される配列にはObject
からの暗黙的に宣言されたどのメソッドも含まれません。そのため、このインタフェースやそのいずれかのスーパー・インタフェースで明示的に宣言されたメソッドが1つもない場合、返される配列の長さは0になります。(クラスを表すClass
オブジェクトが常にObject
から継承されたpublicメソッドを持っていることに注意してください。)
このClass
オブジェクトがプリミティブ型またはvoidを表す場合、返される配列の長さは0になります。
このClass
オブジェクトが表すクラスまたはインタフェースのスーパー・インタフェースで宣言されたstaticメソッドは、そのクラスまたはインタフェースのメンバーと見なされません。
返された配列内の要素は、ソートされていたり、特定の順序になっていたりすることはありません。
Method
オブジェクトの配列SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合public Constructor<?>[] getConstructors() throws SecurityException
Class
オブジェクトが表すクラスのすべてのpublicコンストラクタをリフレクトするConstructor
オブジェクトを格納している配列を返します。クラスにpublicコンストラクタがない場合、クラスが配列クラスの場合、またはクラスがプリミティブ型またはvoidをリフレクトする場合には、長さが0の配列を返します。このメソッドはConstructor<T>
オブジェクトの配列(このクラスからのコンストラクタの配列)を返しますが、このメソッドの戻り値の型はConstructor<?>[]
であり、予想されるConstructor<T>[]
ではないことに注意してください。この情報の少ない戻り値の型は、このメソッドから返されたあとで必要になり、この配列はさまざまなクラスのConstructor
オブジェクトを保持するよう変更されることがあります。これは、Constructor<T>[]
の型保証に違反します。Constructor
オブジェクトの配列SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合public Field getField(String name) throws NoSuchFieldException, SecurityException
Class
オブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・フィールドをリフレクトするField
オブジェクトを返します。name
パラメータは、要求されるフィールドに単純名を指定するString
です。
リフレクトされるフィールドは、次のアルゴリズムで決定されます。ここでは、このオブジェクトが表すクラスまたはインタフェースをCとします。
NoSuchFieldException
がスローされます。 このClass
オブジェクトが配列型を表す場合、このメソッドはその配列型のlength
フィールドを見つけられません。
name
- フィールド名name
で指定されたこのクラスのField
オブジェクトNoSuchFieldException
- 指定された名前のフィールドが見つからない場合。NullPointerException
- name
がnull
である場合SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
Class
オブジェクトが表すクラスまたはインタフェースの、指定されたpublicメンバー・メソッドをリフレクトするMethod
オブジェクトを返します。name
パラメータは、要求されるメソッドに単純名を指定するString
です。parameterTypes
パラメータは、メソッドの仮パラメータ型を宣言された順序で識別するClass
オブジェクトの配列です。parameterTypes
がnull
の場合は、空の配列のように扱われます。
name
が「<init>
」または「<clinit>
」の場合、NoSuchMethodException
が発行されます。そうでない場合、リフレクトされるメソッドは、次のアルゴリズムで指定されます。ここでは、このオブジェクトが表すクラスまたはインタフェースをCとします。
Object
以外のクラスである場合は、このアルゴリズムがCのスーパー・クラスに対して再帰的に呼び出されます。Object
クラスである場合、またはCがインタフェースである場合は、Cのスーパー・インタフェース(存在する場合)を検索して一致するメソッドを見つけます。一致するメソッドが見つかった場合は、それがリフレクトされます。クラスまたはインタフェースCで一致するメソッドを見つけるには: Cが、同じ仮パラメータ型を持ち、指定された名前を持つpublicメソッドをただ1つ宣言する場合、そのメソッドはリフレクトされます。そのようなメソッドがCで複数見つかって、そのメソッドの1つがそれ以外のどれよりも明確な戻り値の型を持つ場合には、そのメソッドがリフレクトされます。そうでない場合は、メソッドの1つが任意に選択されます。
Java言語は、署名は同じでも戻り値の型が異なる複数のメソッドを宣言するクラスを禁止しますが、Java仮想マシンはこれを禁止しないため、クラス内に一致するメソッドが複数存在することがあります。仮想マシンのこのような柔軟性を使用して、さまざまな言語機能を実装することができます。たとえば、共変戻り値はブリッジ・メソッドで実装できます。このブリッジ・メソッドとオーバーライドされるメソッドは同じ署名を持ちますが、戻り値の型はさまざまです。
このClass
オブジェクトが配列型を表す場合、このメソッドはclone()
メソッドを見つけられません。
このClass
オブジェクトが表すクラスまたはインタフェースのスーパー・インタフェースで宣言されたstaticメソッドは、そのクラスまたはインタフェースのメンバーと見なされません。
name
- メソッドの名前parameterTypes
- パラメータのリストname
とparameterTypes
に一致するMethod
オブジェクトNoSuchMethodException
- 一致するメソッドが見つからない場合、または名前が「<init>」または「<clinit>」の場合。NullPointerException
- name
がnull
である場合SecurityException
- セキュリティ・マネージャsが存在し、呼出し側のクラス・ローダーが同じでないか、現在のクラスのクラス・ローダーの祖先とs.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合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()
の呼出しがこのクラスのパッケージへのアクセスを許可しない場合public Class<?>[] getDeclaredClasses() throws SecurityException
Class
オブジェクトが表すクラスのメンバーとして宣言されたすべてのクラスおよびインタフェースをリフレクトするClass
オブジェクトの配列を返します。これには、クラスが宣言したpublic、protected、デフォルト(package)アクセス、およびprivateクラスとインタフェースは含まれますが、継承クラスとインタフェースは含まれません。このメソッドは、クラスがメンバーとしてクラスまたはインタフェースを宣言していない場合や、このClass
オブジェクトがプリミティブ型、配列クラス、またはvoidを表す場合には、長さが0の配列を返します。Class
オブジェクトの配列SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しがこのクラス内の宣言されたクラスへのアクセスを許可しない
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
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()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
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()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
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()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException
Class
オブジェクトが表すクラスまたはインタフェースの、指定された宣言されたフィールドをリフレクトするField
オブジェクトを返します。name
パラメータは、要求されるフィールドに単純名を指定するString
です。
このClass
オブジェクトが配列型を表す場合、このメソッドはその配列型のlength
フィールドを見つけられません。
name
- フィールドの名前Field
オブジェクトNoSuchFieldException
- 指定された名前のフィールドが見つからない場合。NullPointerException
- name
がnull
である場合SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しが宣言されたフィールドへのアクセスを許可しない
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
public Method getDeclaredMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
Class
オブジェクトが表すクラスまたはインタフェースの、指定された宣言されたメソッドをリフレクトするMethod
オブジェクトを返します。name
パラメータは、要求されたメソッドの単純名を指定するString
です。parameterTypes
パラメータは、メソッドの仮パラメータ型を宣言順に識別するClass
オブジェクトの配列です。同じパラメータ型を持つ複数のメソッドが1つのクラスで宣言され、そうしたメソッドの1つがそれ以外のどれよりも明確な戻り値の型を持つ場合には、そのメソッドが返されます。そうでない場合は、メソッドの1つが任意に選択されます。名前が「<init>」または「<clinit>」の場合、NoSuchMethodException
が発行されます。
このClass
オブジェクトが配列型を表す場合、このメソッドはclone()
メソッドを見つけられません。
name
- メソッドの名前parameterTypes
- パラメータ配列Method
オブジェクトNoSuchMethodException
- 一致するメソッドが見つからない場合。NullPointerException
- name
がnull
である場合SecurityException
- セキュリティ・マネージャsが存在し、次の条件のどれかが満たされる場合:
RuntimePermission("accessDeclaredMembers")
を持つs.checkPermission
メソッドの呼出しが宣言されたメソッドへのアクセスを許可しない
s.checkPackageAccess()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
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()
の呼出しがこのクラスのパッケージへのアクセスを許可しない
public InputStream getResourceAsStream(String name)
ClassLoader.getSystemResourceAsStream(java.lang.String)
に委任します。
委譲の前に、このアルゴリズムを使って指定されたリソース名から絶対リソース名が構築されます。
name
が'/'
('\u002f')で始まっている場合、リソースの絶対名は、name
の'/'
のあとの部分になります。
modified_package_name/name
ここで、modified_package_name
は、このオブジェクトのパッケージ名の'.'
('\u002e')を'/'
で置き換えたものです。
name
- 要求されるリソースの名前InputStream
オブジェクト。この名前のリソースが見つからない場合はnull
NullPointerException
- name
がnull
である場合public URL getResource(String name)
ClassLoader.getSystemResource(java.lang.String)
に委任します。
委譲の前に、このアルゴリズムを使って指定されたリソース名から絶対リソース名が構築されます。
name
が'/'
('\u002f')で始まっている場合、リソースの絶対名は、name
の'/'
のあとの部分になります。
modified_package_name/name
ここで、modified_package_name
は、このオブジェクトのパッケージ名の'.'
('\u002e')を'/'
で置き換えたものです。
name
- 要求されるリソースの名前URL
オブジェクト。この名前のリソースが見つからない場合はnull
public ProtectionDomain getProtectionDomain()
ProtectionDomain
を返します。セキュリティ・マネージャがインストールされていると、このメソッドはまずセキュリティ・マネージャのcheckPermission
メソッドをRuntimePermission("getProtectionDomain")
アクセス権を使って呼び出すことによってProtectionDomain
を問題なく取得できることを確認します。SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドがProtectionDomainの取得を許可しない場合。ProtectionDomain
, SecurityManager.checkPermission(java.security.Permission)
, RuntimePermission
public boolean desiredAssertionStatus()
これはJRE自体で使用するためのメソッドであるため、プログラマがこのメソッドを必要とすることはほとんどありません(このメソッドにより、初期化時にアサーションが有効にするかどうかをクラスが判別できる)。指定されたクラスの初期化時に、このメソッドが、指定されたクラスに関連付けられた実際のアサーション・ステータスを返すとは限らないことに留意してください。
ClassLoader.setClassAssertionStatus(java.lang.String, boolean)
, ClassLoader.setPackageAssertionStatus(java.lang.String, boolean)
, ClassLoader.setDefaultAssertionStatus(boolean)
public boolean isEnum()
public T[] getEnumConstants()
public T cast(Object obj)
Class
オブジェクトが表すクラスまたはインタフェースにオブジェクトをキャストします。obj
- キャストされるオブジェクトClassCastException
- オブジェクトがnull以外であり、型Tに割り当てられない場合。public <U> Class<? extends U> asSubclass(Class<U> clazz)
Class
オブジェクトをキャストします。キャストが有効であることを確認し、有効でない場合はClassCastException
をスローします。このメソッドが成功すると、このクラス・オブジェクトへの参照を返します。
このメソッドは、受け取る側のClass
オブジェクトを制限するAPIに渡すために、クライアントがClass
オブジェクトの型をナロー変換する必要がある場合に役立ちます。(ジェネリック型はイレイジャによって実装されるので)キャストの正確性を実行時に確認することはできないため、キャストによってコンパイル時の警告が生成されます。
U
- このクラス・オブジェクトがキャストされる型clazz
- このクラス・オブジェクトがキャストされる型のクラスClass
オブジェクト。ClassCastException
- このClass
オブジェクトが指定されたクラスのサブクラスを表さない場合(「サブクラス」はクラス自体を含む)。public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
AnnotatedElement
getAnnotation
、インタフェース: AnnotatedElement
A
- 問合せの対象であり、存在する場合に返される注釈の型annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
このメソッドによって返されるtrue値は、getAnnotation(annotationClass) != null
と同等です。
デフォルト・メソッドの本体は、前述のコードとして指定されています。
isAnnotationPresent
、インタフェース: AnnotatedElement
annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)
AnnotatedElement
AnnotatedElement.getAnnotation(Class)
の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈を調べることで、その型の1つ以上の注釈の検索が試みられることです。このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。getAnnotationsByType
、インタフェース: AnnotatedElement
A
- 問合せの対象であり、存在する場合に返される注釈の型annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public Annotation[] getAnnotations()
AnnotatedElement
getAnnotations
、インタフェース: AnnotatedElement
public <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)
AnnotatedElement
getDeclaredAnnotation
、インタフェース: AnnotatedElement
A
- 問合せの対象であり、直接存在する場合に返される注釈の型annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)
AnnotatedElement
AnnotatedElement.getDeclaredAnnotation(Class)
の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈(存在する場合)を調べることで、その型の1つ以上の注釈の検索が試みられることです。このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。getDeclaredAnnotationsByType
、インタフェース: AnnotatedElement
A
- 問合せの対象であり、直接または間接的に存在する場合に返される注釈の型annotationClass
- 注釈型に対応するClassオブジェクトNullPointerException
- 指定された注釈クラスがnullの場合public Annotation[] getDeclaredAnnotations()
AnnotatedElement
getDeclaredAnnotations
、インタフェース: AnnotatedElement
public AnnotatedType getAnnotatedSuperclass()
Class
オブジェクトによって表されるエンティティのスーパークラスを指定する型の使用を表すAnnotatedType
オブジェクトを返します。(「... extends Foo」でスーパー・クラスを指定するためのFoo型の使用はFoo型の宣言とは異なります。)
このClass
オブジェクトが、宣言が注釈付きのスーパー・クラスを明示的に示さない型を表す場合、戻り値は注釈の付かない要素を表すAnnotatedType
オブジェクトになります。
このClass
がObject
クラス、インタフェース・タイプ、配列型、プリミティブ型、またはvoidを表す場合、戻り値はnull
になります。
public AnnotatedType[] getAnnotatedInterfaces()
Class
オブジェクトによって表されるエンティティのスーパーインタフェースを指定する型の使用を表すAnnotatedType
オブジェクトの配列を返します。(「... implements Foo」でスーパー・インタフェースを指定するためのFoo型の使用はFoo型の宣言とは異なります。)
このClass
オブジェクトがクラスを表す場合、戻り値は、そのクラスによって実装されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。配列内のオブジェクトの順序は、このClass
オブジェクトの宣言の「implements」節で使用されるインタフェース・タイプの順序に一致します。
このClass
オブジェクトがインタフェースを表す場合、戻り値は、そのインタフェースによって直接拡張されたインタフェースを指定するためのインタフェース・タイプの使用を表すオブジェクトを格納している配列です。配列内のオブジェクトの順序は、このClass
オブジェクトの宣言の「extends」節で使用されるインタフェース・タイプの順序に一致します。
このClass
オブジェクトが、宣言がいずれかの注釈付きスーパー・インタフェースを明示的に示さないクラスまたはインタフェースを表す場合、戻り値は長さが0の配列になります。
このClass
オブジェクトがObject
クラス、配列型、プリミティブ型、またはvoidを表す場合、戻り値は長さが0の配列になります。
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.