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™言語仕様』のセクション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), ClassLoaderpublic 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以外で、ClassCastException.を発生させずにこのClassオブジェクトによって表される参照タイプにキャストできる場合、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つのプリミティブ型と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.TYPEpublic boolean isAnnotation()
Classオブジェクトが注釈型を表す場合はtrueを返します。 すべての注釈型はインタフェースでもあるので、このメソッドがtrueを返すと、isInterface()もtrueを返します。 true、それ以外の場合はfalsepublic boolean isSynthetic()
trueを返し、そうでない場合はfalseを返します。true。public String getName()
Classオブジェクトが表すエンティティ(クラス、インタフェース、配列クラス、プリミティブ型、またはvoid)の名前を、Stringとして返します。
『Java™言語仕様』で規定されているように、このクラス・オブジェクトが配列型ではない参照型を表す場合は、クラスのバイナリ名が返されます。
このクラス・オブジェクトがプリミティブ型または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), RuntimePermissionpublic TypeVariable<Class<T>>[] getTypeParameters()
GenericDeclarationオブジェクトによって表されるジェネリック宣言で宣言された型変数を表すTypeVariableオブジェクトの配列を宣言順に返します。 基になるジェネリック宣言で型変数が宣言されていない場合は、長さ0の配列が返されます。 getTypeParameters、インタフェースGenericDeclarationTypeVariableオブジェクトの配列GenericSignatureFormatError - このジェネリック宣言のジェネリック・シグネチャが『Java™仮想マシン仕様』で規定される書式に適合しない場合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™仮想マシン仕様』で規定される書式に適合しない場合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™仮想マシン仕様』で規定される書式に適合しない場合TypeNotPresentException - ジェネリック・スーパーインタフェースのどれかが、存在しない型宣言を参照する場合MalformedParameterizedTypeException - ジェネリック・スーパーインタフェースのどれかが、何らかの理由によりインスタンス化できないパラメータ化された型を参照する場合public Class<?> getComponentType()
Classを返します。 このクラスが配列クラスを表さない場合、このメソッドはnullを返します。 ClassArraypublic 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で定義しています。
intModifierpublic 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、インタフェースTypepublic 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オブジェクト。この名前のリソースが見つからない場合はnullNullPointerException - 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オブジェクト。この名前のリソースが見つからない場合はnullpublic ProtectionDomain getProtectionDomain()
ProtectionDomainを返します。 セキュリティ・マネージャがインストールされていると、このメソッドはまずセキュリティ・マネージャのcheckPermissionメソッドをRuntimePermission("getProtectionDomain")アクセス権を使って呼び出すことによってProtectionDomainを問題なく取得できることを確認します。 SecurityException - セキュリティ・マネージャが存在し、そのcheckPermissionメソッドがProtectionDomainの取得を許可しない場合。ProtectionDomain, SecurityManager.checkPermission(java.security.Permission), RuntimePermissionpublic 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)
AnnotatedElementgetAnnotation、インタフェースAnnotatedElementA - 問合せの対象であり、存在する場合に返される注釈の型annotationClass - 注釈型に対応するClassオブジェクトNullPointerException - 指定された注釈クラスがnullの場合public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
このメソッドによって返されるtrue値は、getAnnotation(annotationClass) != nullと同等です。
デフォルト・メソッドの本体は、前述のコードとして指定されています。
isAnnotationPresent、インタフェースAnnotatedElementannotationClass - 注釈型に対応するClassオブジェクトNullPointerException - 指定された注釈クラスがnullの場合public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)
AnnotatedElementAnnotatedElement.getAnnotation(Class)の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈を調べることで、その型の1つ以上の注釈の検索が試みられることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。 getAnnotationsByType、インタフェースAnnotatedElementA - 問合せの対象であり、存在する場合に返される注釈の型annotationClass - 注釈型に対応するClassオブジェクトNullPointerException - 指定された注釈クラスがnullの場合public Annotation[] getAnnotations()
AnnotatedElementgetAnnotations、インタフェースAnnotatedElementpublic <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)
AnnotatedElementgetDeclaredAnnotation、インタフェースAnnotatedElementA - 問合せの対象であり、直接存在する場合に返される注釈の型annotationClass - 注釈型に対応するClassオブジェクトNullPointerException - 指定された注釈クラスがnullの場合public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)
AnnotatedElementAnnotatedElement.getDeclaredAnnotation(Class)の違いは、このメソッドではその引数が繰返し可能な注釈型 (JLS 9.6)であるかどうかが検出され、繰返し可能な注釈型である場合は、コンテナ注釈(存在する場合)を調べることで、その型の1つ以上の注釈の検索が試みられることです。 このメソッドの呼出し元は、返された配列を自由に変更することができ、これはほかの呼出し元に返された配列に影響を及ぼしません。 getDeclaredAnnotationsByType、インタフェースAnnotatedElementA - 問合せの対象であり、直接または間接的に存在する場合に返される注釈の型annotationClass - 注釈型に対応するClassオブジェクトNullPointerException - 指定された注釈クラスがnullの場合public Annotation[] getDeclaredAnnotations()
AnnotatedElementgetDeclaredAnnotations、インタフェースAnnotatedElementpublic 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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。