|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.lang.Class
クラス 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()); }
ClassLoader.defineClass(byte[], int, int)
, 直列化された形式メソッドの概要 | |
static Class |
forName(String className)
指定された文字列名を持つクラスまたはインタフェースに関連付けられた、 Class オブジェクトを返します。 |
static Class |
forName(String name,
boolean initialize,
ClassLoader loader)
指定されたクラスローダを使って、指定された文字列名を持つクラスまたはインタフェースに関連付けられた Class オブジェクトを返します。 |
Class[] |
getClasses()
この Class オブジェクトが表すクラスのメンバである、すべての public クラスおよびインタフェースを表す Class オブジェクトを格納している配列を返します。 |
ClassLoader |
getClassLoader()
クラスのクラスローダを返します。 |
Class |
getComponentType()
配列のコンポーネント型を表す Class を返します。 |
Constructor |
getConstructor(Class[] parameterTypes)
この Class オブジェクトが表すクラスの指定された public コンストラクタをリフレクトする Constructor オブジェクトを返します。 |
Constructor[] |
getConstructors()
この Class オブジェクトが表すクラスのすべての public コンストラクタをリフレクトする Constructor オブジェクトを格納している配列を返します。 |
Class[] |
getDeclaredClasses()
この Class オブジェクトが表すクラスのメンバとして宣言された、すべてのクラスおよびインタフェースをリフレクトする、Class オブジェクトの配列を返します。 |
Constructor |
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 オブジェクトを返します。 |
Field |
getField(String name)
この Class オブジェクトが表すクラスまたはインタフェースの指定された public メンバフィールドをリフレクトする Field オブジェクトを返します。 |
Field[] |
getFields()
この Class オブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能な public フィールドをリフレクトする、Field オブジェクトを保持している配列を返します。 |
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()
このクラスの署名者を取得します。 |
Class |
getSuperclass()
この Class で表されるエンティティ (クラス、インタフェース、プリミティブ型、または void) のスーパークラスを表す Class を返します。 |
boolean |
isArray()
この Class オブジェクトが配列クラスを表すかどうかを判定します。 |
boolean |
isAssignableFrom(Class cls)
この Class オブジェクトが表すクラスまたはインタフェースが、指定された Class パラメータが表すクラスまたはインタフェースと等しいかどうか、あるいはそのスーパークラスあるいはスーパーインタフェースであるかどうかを判定します。 |
boolean |
isInstance(Object obj)
指定された Object が、この Class が表すオブジェクトと代入互換の関係にあるかどうかを判定します。 |
boolean |
isInterface()
指定された Class オブジェクトがインタフェース型を表すかどうかを判定します。 |
boolean |
isPrimitive()
指定された Class オブジェクトがプリミティブ型を表すかどうかを判定します。
|
Object |
newInstance()
この Class オブジェクトが表すクラスの新しいインスタンスを生成します。 |
String |
toString()
オブジェクトを文字列に変換します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
メソッドの詳細 |
public String toString()
getName
が返す形式の完全指定のクラス名という構成で表現されます。この Class
オブジェクトがプリミティブ型を表す場合、このメソッドはプリミティブ型の名前を返し、void を表す場合は、「void」を返します。Object
内の toString
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")
ただし、このメソッドは、「Java 言語仕様」のセクション 12.2、12.3、12.4 で指定された、ロード、リンク、または初期化に関連するエラーをスローします。Class.forName("Foo", true, this.getClass().getClassLoader())
loader
が null
で、セキュリティマネージャが存在し、呼び出し側のクラスローダが null でない場合、このメソッドはセキュリティマネージャの checkPermission
メソッドを RuntimePermission("getClassLoader")
のアクセス権を使って呼び出すことによって、ブートストラップクラスローダに問題なくアクセスできることを保証します。
name
- 要求するクラスの完全指定の名前initialize
- クラスを初期化する必要の有無loader
- クラスのロード元である必要があるクラスローダLinkageError
- リンケージに失敗した場合ExceptionInInitializerError
- このメソッドによる初期化に失敗した場合ClassNotFoundException
- 指定されたクラスローダによってクラスが見つからなかった場合forName(String)
,
ClassLoader
public Object newInstance() throws InstantiationException, IllegalAccessException
new
式に空の引数リストを指定した場合と同じように、クラスのインスタンスが生成されます。クラスは、初期化されていなければ初期化されます。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.PUBLIC
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
IllegalAccessException
- クラスまたは初期化子にアクセスできない場合InstantiationException
- この Class
が abstract クラス、インタフェース、配列クラス、プリミティブ型、または void を表す場合、あるいはインスタンスの生成がほかの理由で失敗した場合ExceptionInInitializerError
- このメソッドによる初期化に失敗した場合SecurityException
- 新規インスタンスを生成するアクセス権がない場合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 Virtual Machine が作成し、該当するプリミティブ型と同じ名前を持ちます。つまり、boolean
、byte
、char
、short
、int
、long
、float
、double
、および void です。
これらのオブジェクトには、以下の 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 String getName()
Class
オブジェクトが表すエンティティ (クラス、インタフェース、配列クラス、プリミティブ型、または void) の完全指定の名前を、String
として返します。
この Class
オブジェクトが配列のクラスを表す場合、名前の内部形式では、先頭に配列の入れ子の深さを表すいくつかの "[" 文字が付き、そのあとに Java のシグニチャー形式の要素型の名前が続きます。したがって、
は "(new Object[3]).getClass().getName()
[Ljava.lang.Object;
" を返し、
は "(new int[3][4][5][6][7][8][9]).getClass().getName()
[[[[[[[I
" を返します。要素型の名前は、次のように符号化します。
クラス名またはインタフェース名の classname は、上記の例のように完全指定の名前で指定されます。B byte C char D double F float I int J long Lclassname; クラスまたはインタフェース S short Z boolean
public ClassLoader getClassLoader()
セキュリティマネージャが存在し、呼び出し側のクラスローダが null でなく、クラスローダが必要とされるクラスのクラスローダの上位ローダでもない場合、このメソッドはセキュリティマネージャの checkPermission
メソッドを RuntimePermission("getClassLoader")
のアクセス権を使って呼び出すことによってクラスのクラスローダに問題なくアクセスできることを保証します。
このオブジェクトがプリミティブ型または void を表す場合は、null が返されます。
SecurityException
- セキュリティマネージャが存在し、その checkPermission
メソッドがクラスのクラスローダへのアクセスを拒否する場合ClassLoader
,
SecurityManager.checkPermission(java.security.Permission)
,
RuntimePermission
public Class getSuperclass()
Class
で表されるエンティティ (クラス、インタフェース、プリミティブ型、または void) のスーパークラスを表す Class
を返します。この Class
が、Object
クラス、インタフェース、プリミティブ型、または void の場合は、null が返されます。このオブジェクトが配列クラスを表す場合は、Object
クラスを表す Class
オブジェクトが返されます。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 の配列を返します。
- 戻り値:
- このクラスによって実装されるインタフェースの配列
public Class getComponentType()
Class
を返します。このクラスが配列クラスを表さない場合、このメソッドは null を返します。Class
Array
public int getModifiers()
public
、protected
、private
、final
、static
、abstract
、および interface
用の Java Virtual Machine の定数から構成されます。これらは、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 Class getDeclaringClass()
Class
オブジェクトが表すクラスまたはインタフェースが別のクラスのメンバの場合は、それが宣言されたクラスを表す Class
オブジェクトを返します。このクラスまたはインタフェースがほかのクラスのメンバでない場合は、null を返します。この Class
オブジェクトが配列クラス、プリミティブ型、または void を表す場合、このメソッドは null を返します。public Class[] getClasses()
Class
オブジェクトが表すクラスのメンバである、すべての public クラスおよびインタフェースを表す Class
オブジェクトを格納している配列を返します。スーパークラスから継承した public クラスおよびインタフェースのメンバ、ならびにクラスが宣言した public クラスとインタフェースのメンバも含まれます。この Class
オブジェクトが public メンバクラスやインタフェースを持たない場合や、プリミティブ型、配列クラス、または void を表す場合には、長さが 0 の配列を返します。
このクラスおよびこのクラスのそれぞれのスーパークラスに対して、次のセキュリティチェックが実行されます。セキュリティマネージャが存在する場合、その checkMemberAccess
メソッドは this
と Member.PUBLIC
を引数に指定して呼び出されます (this
はメンバを取得する対象のクラスまたはスーパークラス)。クラスがパッケージ内にあった場合、セキュリティマネージャの checkPackageAccess
メソッドがパッケージ名を引数に指定して呼び出されます。これらの呼び出しは、SecurityException になる場合があります。
Class
オブジェクトの配列SecurityException
- 情報へのアクセスが拒否された場合SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Field[] getFields() throws SecurityException
Class
オブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能な public フィールドをリフレクトする、Field
オブジェクトを保持している配列を返します。返された配列内の要素は、ソートされていたり、特定の順序になっていることはありません。クラスまたはインタフェースにアクセス可能な public フィールドがない場合や、クラスまたはインタフェースが配列クラス、プリミティブ型、または void を表す場合は、長さが 0 の配列を返します。
特に、この Class
オブジェクトがクラスを表す場合、このメソッドはこのクラスとそのすべてのスーパークラスの public フィールドを返します。この Class
オブジェクトがインタフェースを表す場合は、このインタフェースとすべてのスーパーインタフェースのフィールドを返します。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.PUBLIC
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
このメソッドは、配列クラスの暗黙的な長さフィールドをリフレクトしません。ユーザコードで配列を操作するには、Array
クラスのメソッドを使う必要があります。
「Java 言語仕様」のセクション 8.2 と 8.3 を参照してください。
Field
オブジェクトの配列SecurityException
- 情報へのアクセスが拒否された場合Field
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Method[] getMethods() throws SecurityException
Class
オブジェクトが表すクラスまたはインタフェースのすべての public メンバメソッドをリフレクトする Method
オブジェクトを格納している配列を返します。クラスまたはインタフェースが宣言したもの、およびスーパークラスやスーパーインタフェースから継承されたものも含まれます。返された配列内の要素は、ソートされていたり、特定の順序になっていることはありません。この Class
オブジェクトが public メンバメソッドがないクラスまたはインタフェースを表す場合や、配列クラス、プリミティブ型、または void を表す場合は、長さが 0 の配列を返します。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.PUBLIC
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
クラス初期化メソッド <clinit>
は、返される配列に入っていません。クラスが複数の public メンバメソッドを同じパラメータ型で宣言すると、そのようなメソッドはすべて返された配列に入ります。
「Java 言語仕様」のセクション 8.2 と 8.4 を参照してください。
Method
オブジェクトの配列SecurityException
- 情報へのアクセスが拒否された場合Method
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Constructor[] getConstructors() throws SecurityException
Class
オブジェクトが表すクラスのすべての public コンストラクタをリフレクトする Constructor
オブジェクトを格納している配列を返します。クラスに public コンストラクタがない場合、クラスが配列クラスの場合、またはクラスがプリミティブ型または void をリフレクトする場合には、長さが 0 の配列を返します。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.PUBLIC
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
parameterTypes
と一致する場合、Method
オブジェクトを含む配列SecurityException
- 情報へのアクセスが拒否された場合Constructor
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Field getField(String name) throws NoSuchFieldException, SecurityException
Class
オブジェクトが表すクラスまたはインタフェースの指定された public メンバフィールドをリフレクトする Field
オブジェクトを返します。name
パラメータは、要求されるフィールドの単純な名前を指定する String
です。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.PUBLIC
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
リフレクトされるフィールドは、次のアルゴリズムで決定されます。ここでは、このオブジェクトが表すクラスを C とします。
NoSuchFieldException
がスローされます。 「Java 言語仕様」のセクション 8.2 と 8.3 を参照してください。
name
- フィールド名name
で指定されたこのクラスの Field
オブジェクトNoSuchFieldException
- 指定された名前のフィールドが見つからない場合SecurityException
- 情報へのアクセスが拒否された場合Field
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Method getMethod(String name, Class[] parameterTypes) throws NoSuchMethodException, SecurityException
Class
オブジェクトが表すクラスまたはインタフェースの指定された public メンバメソッドをリフレクトする Method
オブジェクトを返します。name
パラメータは、要求されるメソッドに単純な名前を指定する String
です。parameterTypes
パラメータは、メソッドの仮パラメータ型を宣言された順序で識別する Class
オブジェクトの配列です。parameterTypes
が null
の場合は、空の配列のように扱われます。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.PUBLIC
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
name
が "<init>" または "<clinit>" の場合、NoSuchMethodException
がスローされます。そうでない場合、リフレクトされるメソッドは、次のアルゴリズムで指定されます。ここでは、このオブジェクトが表すクラスを C とします。
「Java 言語仕様」のセクション 8.2 と 8.4 を参照してください。
name
- メソッドの名前parameterTypes
- パラメータのリストname
と parameterTypes
と一致する Method
オブジェクトNoSuchMethodException
- 一致するメソッドが見つからない場合、あるいは名前が "<init>" または "<clinit>" の場合SecurityException
- 情報へのアクセスが拒否された場合Method
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Constructor getConstructor(Class[] parameterTypes) throws NoSuchMethodException, SecurityException
Class
オブジェクトが表すクラスの指定された public コンストラクタをリフレクトする Constructor
オブジェクトを返します。parameterTypes
パラメータは、コンストラクタの仮パラメータ型を宣言された順序で識別する Class
オブジェクトの配列です。
リフレクトするコンストラクタは、parameterTypes
に指定された型と一致する仮パラメータ型を持つこの Class
オブジェクトが表すクラスの public コンストラクタです。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.PUBLIC
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
parameterTypes
- パラメータ配列parameterTypes
と一致する public コンストラクタの Method
オブジェクトNoSuchMethodException
- 一致するメソッドが見つからない場合SecurityException
- 情報へのアクセスが拒否された場合Constructor
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Class[] getDeclaredClasses() throws SecurityException
Class
オブジェクトが表すクラスのメンバとして宣言された、すべてのクラスおよびインタフェースをリフレクトする、Class
オブジェクトの配列を返します。これには、クラスが宣言した public、protected、デフォルト (package) アクセス、および private クラスとインタフェースは含まれますが、継承クラスとインタフェースは含まれません。このメソッドは、クラスがメンバとしてクラスまたはインタフェースを宣言していない場合や、この Class
オブジェクトがプリミティブ型、配列クラス、または void を表す場合には、長さが 0 の配列を返します。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.PUBLIC
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
Class
オブジェクトの配列SecurityException
- 情報へのアクセスが拒否された場合SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Field[] getDeclaredFields() throws SecurityException
Class
オブジェクトが表すクラスまたはインタフェースが宣言した、すべてのフィールドをリフレクトする、Field
オブジェクトの配列を返します。これには、public、protected、デフォルト (package) アクセス、および private フィールドは含まれますが、継承フィールドは含まれません。返された配列内の要素は、ソートされていたり、特定の順序になっていることはありません。このメソッドは、クラスまたはインタフェースがフィールドを宣言しない場合や、この Class
オブジェクトがプリミティブ型、配列クラス、または void を表す場合には、長さが 0 の配列を返します。
「Java 言語仕様」のセクション 8.2 と 8.3 を参照してください。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.CECLARED
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
Field
オブジェクトの配列SecurityException
- 情報へのアクセスが拒否された場合Field
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Method[] getDeclaredMethods() throws SecurityException
Class
オブジェクトが表すクラスまたはインタフェースが宣言した、すべてのメソッドをリフレクトする、Method
オブジェクトの配列を返します。これには、public、protected、デフォルト (package) アクセス、および private メソッドは含まれますが、継承メソッドは含まれません。返された配列内の要素は、ソートされていたり、特定の順序になっていることはありません。このメソッドは、クラスまたはインタフェースがメソッドを宣言しない場合や、この Class
オブジェクトがプリミティブ型、配列クラス、または void を表す場合は、長さが 0 の配列を返します。クラス初期化メソッド <clinit>
は、返された配列にはありません。クラスが同じパラメータ型を持つ複数の public メンバメソッドを宣言する場合、それらのメソッドは、すべて返された配列にあります。
「Java 言語仕様」のセクション 8.2 を参照してください。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.DECLARED
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
Method
オブジェクトの配列SecurityException
- 情報へのアクセスが拒否された場合Method
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Constructor[] getDeclaredConstructors() throws SecurityException
Class
オブジェクトが表すクラスが宣言したすべてのコンストラクタをリフレクトする Constructor
オブジェクトの配列を返します。これらは、public、protected、デフォルト (package) アクセス、および private コンストラクタです。返された配列内の要素は、ソートされていたり、特定の順序になっていることはありません。クラスがデフォルトのコンストラクタを持つ場合、このコンストラクタは返された配列にあります。このメソッドは、この Class
オブジェクトがインタフェース、プリミティブ型、配列クラス、または void を表す場合には長さが 0 の配列を返します。
「Java 言語仕様」のセクション 8.2 を参照してください。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.DECLARED
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
Method
オブジェクトの配列SecurityException
- 情報へのアクセスが拒否された場合Constructor
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException
Class
オブジェクトが表すクラスまたはインタフェースの指定の宣言フィールドをリフレクトする Field
オブジェクトを返します。name
パラメータは、要求されたフィールドの単純な名前を指定する String
です。このメソッドが配列クラスの length
フィールドをリフレクトすることはありません。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.DECLARED
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
name
- フィールドの名前Field
オブジェクトNoSuchFieldException
- 指定された名前のフィールドが見つからない場合SecurityException
- 情報へのアクセスが拒否された場合Field
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Method getDeclaredMethod(String name, Class[] parameterTypes) throws NoSuchMethodException, SecurityException
Class
オブジェクトが表すクラスまたはインタフェースの指定の宣言メソッドをリフレクトする Method
オブジェクトを返します。name
パラメータは、要求されたメソッドの単純な名前を指定する String
です。parameterTypes
パラメータは、メソッドの仮パラメータ型を宣言順に識別する Class
オブジェクトの配列です。同じパラメータ型を持つ複数のメソッドが 1 つのクラスで宣言され、そうしたメソッドの 1 つがそれ以外のどれよりも明確な戻り型を持つ場合には、そのメソッドが返されます。そうでない場合、メソッドの 1 つが任意に選択されます。名前が "<init>" または "<clinit>" の場合は、NoSuchMethodException
がスローされます。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.DECLARED
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
name
- メソッドの名前parameterTypes
- パラメータ配列Method
オブジェクトNoSuchMethodException
- 一致するメソッドが見つからない場合SecurityException
- 情報へのアクセスが拒否された場合Method
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public Constructor getDeclaredConstructor(Class[] parameterTypes) throws NoSuchMethodException, SecurityException
Class
オブジェクトが表すクラスまたはインタフェースの指定のコンストラクタをリフレクトする Constructor
オブジェクトを返します。parameterTypes
パラメータは、コンストラクタの仮パラメータ型を宣言順に識別する Class
オブジェクトの配列です。
セキュリティマネージャが存在する場合、このメソッドはまず this
と Member.DECLARED
を引数に指定してセキュリティマネージャの checkMemberAccess
メソッドを呼び出します。クラスがパッケージ内にあった場合、このメソッドはパッケージ名を引数に指定してセキュリティマネージャの checkPackageAccess
メソッドも呼び出します。これらの呼び出しによって、SecurityException が発生する場合があります。
parameterTypes
- パラメータ配列Method
オブジェクトNoSuchMethodException
- 一致するメソッドが見つからない場合SecurityException
- 情報へのアクセスが拒否された場合Constructor
,
SecurityManager.checkMemberAccess(Class, int)
,
SecurityManager.checkPackageAccess(String)
public InputStream getResourceAsStream(String name)
このメソッドは、リソース名に次のような変更を加えたあとで呼び出しをそのクラスローダに委譲します。「/」で始まるリソース名は、そのまま使います。それ以外の場合は、「.」から「/」に変換したあとで、パッケージの名前を付けます。このオブジェクトがブートストラップローダでロードされると、呼び出しは ClassLoader.getSystemResourceAsStream
に委譲されます。
name
- 要求されるリソースの名前java.io.InputStream
オブジェクトClassLoader
public URL getResource(String name)
このメソッドは、リソース名に次のような変更を加えたあとで呼び出しをそのクラスローダに委譲します。「/」で始まるリソース名は、そのまま使います。それ以外の場合は、「.」から「/」に変換したあとで、パッケージの名前を付けます。このオブジェクトがブートストラップローダでロードされると、呼び出しは ClassLoader.getSystemResource
に委譲されます。
name
- 要求されるリソースの名前java.net.URL
オブジェクトClassLoader
public ProtectionDomain getProtectionDomain()
ProtectionDomain
を返します。セキュリティマネージャがインストールされていると、このメソッドはまずセキュリティマネージャの checkPermission
メソッドを RuntimePermission("getProtectionDomain")
アクセス権を使って呼び出すことによって ProtectionDomain
を問題なく取得できることを保証します。SecurityException
- セキュリティマネージャが存在し、その checkPermission
メソッドが ProtectionDomain の取得を許可しない場合ProtectionDomain
,
SecurityManager.checkPermission(java.security.Permission)
,
RuntimePermission
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.