全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.lang.Class

java.lang.Object
   |
   +----java.lang.Class

public final class Class
extends Object
implements Serializable
クラス Class のインスタンスは、実行中の Java アプリケーションのクラスおよびインタフェースを表します。また、配列はすべて、同じ要素型および大きさの数を持つ配列によって共有される Class オブジェクトとして反映されるクラスに属します。また、プリミティブ Java 型 (boolean, byte, char, short, int, long, float, and double) およびキーワード void のいずれかも、Class オブジェクトとして表わされます。

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

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

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

参照:
defineClass

Method Index

 o forName(String)
与えられた文字列の名を持つクラスに関連した Class オブジェクトを返す。
 o getClasses()
この Class オブジェクトが表すクラスメンバの、すべての public クラスおよびインタフェースを表す Class オブジェクトを含む配列を返す。
 o getClassLoader()
クラスのクラスローダを判別する。
 o getComponentType()
このクラスが配列型を表す場合、配列のコンポーネント型を表す Class オブジェクトを返します。そうでない場合は、null を返す。
 o getConstructor(Class[])
この Class オブジェクトが表すクラスの指定の public 構築子を反映する Constructor オブジェクトを返す。
 o getConstructors()
この Class オブジェクトが表すクラスのすべての public 構築子を反映する Constructor オブジェクトを含む配列を返す。
 o getDeclaredClasses()
この Class オブジェクトが表すクラスのメンバとして宣言したすべてのクラスおよびインタフェースを反映する Class オブジェクトの配列を返す。
 o getDeclaredConstructor(Class[])
この Class オブジェクトが表すクラスまたはインタフェースの指定宣言構築子を反映する Construct オブジェクトを返す。
 o getDeclaredConstructors()
この Class オブジェクトが表すクラスが宣言したすべての構築子を反映する Constructor オブジェクトの配列を返す。
 o getDeclaredField(String)
この Class オブジェクトが表すクラスまたはインタフェースの指定宣言フィールドを反映する Field オブジェクトを返す。
 o getDeclaredFields()
この Class オブジェクトが表すクラスまたはインタフェースが宣言したすべてのフィールドを反映する Field オブジェクトの配列を返す。
 o getDeclaredMethod(String, Class[])
この Class オブジェクトが表すクラスまたはインタフェースの指定宣言メソッドを反映する Method オブジェクトを返す。
 o getDeclaredMethods()
この Class オブジェクトが表すクラスまたはインタフェースが宣言したすべてのメソッドを反映する Method オブジェクトの配列を返す。
 o getDeclaringClass()
この Class オブジェクトが表すクラスまたはインタフェースが別のクラスのメンバの場合、メンバとなっているクラス (宣言クラス) を表す Class オブジェクトを返す。
 o getField(String)
この Class オブジェクトが表すクラスまたはインタフェースの指定 public メンバフィールドを反映する Field オブジェクトを返す。
 o getFields()
この Class オブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能な public フィールドを反映する Field オブジェクトを含む配列を返す。
 o getInterfaces()
このオブジェクトが表すクラスまたはインタフェースが実装するインタフェースを判別する。
 o getMethod(String, Class[])
この Class オブジェクトが表すクラスまたはインタフェースの指定 public メンバメソッドを反映する Method オブジェクトを返す。
 o getMethods()
この Class オブジェクトが表すクラスまたはインタフェースのすべての public メンバ メソッドを反映する Method オブジェクトを含む配列を返す。クラスまたはインタフェースが宣言したもの、およびスーパークラスやスーパーインタフェースから継承するものも含まれる。
 o getModifiers()
このクラスまたはインタフェースの Java 言語修飾子を整数型にコード化して返す。
 o getName()
この Class オブジェクトが表す型 (クラス、インタフェース、配列、またはプリミティブ) の完全な修飾名を String として返す。
 o getResource(String)
 o getResourceAsStream(String)
所定名のリソースを検索する。
 o getSigners()
このクラスの署名者を獲得する。
 o getSuperclass()
このオブジェクトが、クラス Object 以外の任意のクラスを表す場合、該当クラスのスーパークラスを表すオブジェクトが返される。
 o isArray()
この Class オブジェクトが配列型を表す場合は true を、そうでない場合は false を返す。
 o isAssignableFrom(Class)
この Class が表すクラスまたはインタフェースが、指定の Class パラメータが表すクラスまたはインタフェースと同じか、あるいはこのスーパークラスまたはスーパーインタフェースかを判別する。
 o isInstance(Object)
このメソッドは、Java 言語 instanceof 演算子と同じである。
 o isInterface()
指定の Class オブジェクトがインタフェース型を表すかどうかを判別する。
 o isPrimitive()
指定の Class オブジェクトがプリミティブ Java 型を表すかどうかを判別する。
 o newInstance()
クラスの新規インスタンスを生成する。
 o toString()
オブジェクトを文字列に変換する。

Methods

 o toString
  public String toString()
オブジェクトを文字列に変換します。文字列は、文字列 "class" または "interface" の後にスペースが続き、その後にクラスの完全な修飾名が続いて表示されます。この Class オブジェクトがプリミティブ型を表す場合は、プリミティブ型の名前を返します。

返り値:
このクラスオブジェクトの文字列表示
オーバーライド:
クラス Object 内の toString
 o forName
 public static native Class forName(String className) throws ClassNotFoundException
所定の文字列の名を持つクラスに関連した Class オブジェクトを返します。クラスまたはインタフェースのフルネームを示すと、このメソッドはクラスの検索、ロード、およびリンクを試行します。この処理を正常に実行できると、クラスを表す Class オブジェクトが返ります。失敗すると、メソッドは ClassNotFoundException をスローします。

例えば、以下の記述は、 java.lang.Thread という名前のクラスの実行時 Class 記述子を返します:

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

パラメータ:
className - 要求するクラスのフルネーム
返り値:
指定名を持つクラスの Class 記述子
例外: ClassNotFoundException
クラスを見つけられなかった場合
 o newInstance
 public native Object newInstance() throws InstantiationException, IllegalAccessException
クラスの新規インスタンスを生成します。

返り値:
このオブジェクトが表すクラスに新しく割り当てられたインスタンス。これは、空の引数リストを用いた new 式と全く同じ方法で実行する。
例外: IllegalAccessException
クラスまたは初期化子にアクセスできない場合
例外: InstantiationException
アプリケーションが abstract クラスまたはインタフェースをインスタンス実行しようと試みた場合、または別の理由でインスタンス実行が失敗した場合
 o isInstance
 public native boolean isInstance(Object obj)
このメソッドは、Java 言語 instanceof 演算子と同じです。指定の Object 引数が null でなく、ClassCastException を出さずにこの Class オブジェクトが表す参照型にキャストできる場合、メソッドは true を返します。それ以外の場合は、false を返します。

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

パラメータ:
obj - チェックするオブジェクト
 o isAssignableFrom
 public native boolean isAssignableFrom(Class cls)
この Class オブジェクトが表すクラスまたはインタフェースが、指定の Class パラメータが表すクラスまたはインタフェースと同じか、またはこのスーパークラスあるいはスーパーインタフェースかを判別します。上記のどちらかである場合は true、そうでない場合は false を返します。この Class オブジェクトがプリミティブ型を表す場合、指定の Class パラメータとこの Class オブジェクトが一致する場合は true、そうでない場合は false を返します。

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

例外: NullPointerException
指定の Class オブジェクトが null の場合
 o isInterface
 public native boolean isInterface()
指定の Class オブジェクトがインタフェース型を表すかどうかを判別します。

返り値:
このオブジェクトがインタフェースを表す場合は true ; そうでない場合は false
 o isArray
 public native boolean isArray()
この Class オブジェクトが配列型を表す場合は true、そうでない場合は false を返します。

 o isPrimitive
 public native boolean isPrimitive()
指定の Class オブジェクトがプリミティブ Java 型を表すかどうかを判別します。

8 つの Java のプリミティブな型と void を表す、すでに定義された 9 つの Class オブジェクトがあります。これらは Java 仮想マシンが生成し、該当するプリミティブ型と同じ名前を持ちます。つまり、boolean, byte, char, short, int, long, float, double, および void です。

これらのオブジェクトには、以下の public static final 変数を使ってしかアクセスできません。また、このメソッドが true を返す Class オブジェクトは、これらの 9 つのオブジェクトに対してだけです。

参照:
TYPE, TYPE, TYPE, TYPE, TYPE, TYPE, TYPE, TYPE, TYPE
 o getName
 public native String getName()
この Class オブジェクトが表す型 (クラス、インタフェース、配列、またはプリミティブ) のフルネームを、String として返します。

返り値:
このオブジェクトが表すクラスまたはインタフェースのフルネーム
 o getClassLoader
 public native ClassLoader getClassLoader()
クラスのクラスローダを判別します。

返り値:
このオブジェクトが表すクラスまたはインタフェースを生成したクラスローダ、またはクラスローダを使って生成されたクラスでない場合は null
参照:
ClassLoader
 o getSuperclass
 public native Class getSuperclass()
このオブジェクトが、クラス Object 以外のクラスを表す場合、該当クラスのスーパークラスを表すオブジェクトを返します。

このオブジェクトが、クラス Object を表す場合、またはインタフェースを表す場合は、null を返します。

返り値:
このオブジェクトが表すクラスのスーパークラス
 o getInterfaces
 public native Class[] getInterfaces()
このオブジェクトが表すクラスまたはインタフェースが実装するインタフェースを判別します。

このオブジェクトがクラスを表す場合、返り値は、クラスが実装するすべてのインタフェースを表すオブジェクトを含む配列です。配列内のインタフェースオブジェクトの順序は、このオブジェクトが表すクラスを宣言する implements 節内のインタフェース名の順序に対応します。

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

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

返り値:
このクラスが実装するインタフェースの配列
 o getComponentType
 public native Class getComponentType()
このクラスが配列型を表す場合は配列のコンポーネント型を表す Class オブジェクトを、それ以外の場合は null を返します。

参照:
Array
 o getModifiers
 public native int getModifiers()
このクラスまたはインタフェースの Java 言語修飾子を整数型にコード化して返します。修飾子は、public, protected, private, final, およびinterface のための Java 仮想マシンの定数から構成されます。これらは、クラス Modifier を使って解読します。

修飾子のコード化は、Java 仮想マシン仕様の表 4.1 で定義しています。

参照:
Modifier
 o getSigners
 public native Object[] getSigners()
このクラスの署名者を獲得します。

 o getDeclaringClass
  public Class getDeclaringClass()
この Class オブジェクトが表すクラスまたはインタフェースが別のクラスのメンバの場合、メンバとなっているクラス (宣言クラス) を表す Class オブジェクトを返します。このクラスまたはインタフェースが他のクラスのメンバでない場合は、null を返します。

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

 o getFields
  public Field[] getFields() throws SecurityException
この Class オブジェクトが表すクラスまたはインタフェースのすべてのアクセス可能な public フィールドを反映する Field オブジェクトを含む配列を返します。クラスまたはインタフェースに、アクセス可能な public フィールドがない場合、またはクラスまたはインタフェースが配列型やプリミティブ型を表す場合は、長さが 0 の配列を返します。

特に、この Class オブジェクトがクラスを表す場合は、このクラスの public フィールドとそのスーパークラスをすべて返します。この Class オブジェクトがインタフェースを表す場合は、このインタフェースのフィールドとそのスーパーインタフェースをすべて返します。この Class オブジェクトが配列型やプリミティブ型を表す場合は、長さが 0 の配列を返します。

このメソッドは、配列型について明白な長さフィールドを反映しません。配列を操作するには、ユーザコードでクラス Array のメソッドを使う必要があります。

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

例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Field
 o getMethods
  public Method[] getMethods() throws SecurityException
この Class オブジェクトが表すクラスまたはインタフェースのすべての public メンバ メソッドを反映する Method オブジェクトを含む配列を返します。クラスまたはインタフェースが宣言したもの、およびスーパークラスやスーパーインタフェースから継承されたものも含まれます。クラスまたはインタフェースに public メンバメソッドがない場合は、長さが 0 の配列を返します。

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

例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Method
 o getConstructors
  public Constructor[] getConstructors() throws SecurityException
この Class オブジェクトが表すクラスのすべての public 構築子を反映する Constructor オブジェクトを含む配列を返します。クラスに public 構築子がない場合は、長さが 0 の配列を返します。

例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Constructor
 o getField
  public Field getField(String name) throws NoSuchFieldException, SecurityException
この Class オブジェクトが表すクラスまたはインタフェースの指定の public メンバフィールドを反映する Field オブジェクトを返します。name パラメータは、要求フィールドの単純な名前を指定する String です。

反映フィールドは、この Class オブジェクトが表すクラスまたはインタフェースのすべてのメンバフィールドについて、指定名を持つ public フィールドを検索して見つけ出します。

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

例外: NoSuchFieldException
指定した名前のフィールドが見つからない場合
例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Field
 o getMethod
  public Method getMethod(String name,
                          Class parameterTypes[]) throws NoSuchMethodException, SecurityException
この Class オブジェクトが表すクラスまたはインタフェースの指定の public メンバメソッドを反映する Method オブジェクトを返します。name パラメータは、要求メソッドの単純名を指定する String (文字列) です。parameterTypes パラメータは、メソッドの形式パラメータ型を宣言順に識別する Class オブジェクトの配列です。

反映するメソッドは、この Class オブジェクトが表すクラスまたはインタフェースのすべてのメンバフィールドについて、指定名および全く同じ形式のパラメータ型を持つ public メソッドを検索して見つけ出します。

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

例外: NoSuchMethodException
一致するメソッドが見つからない場合
例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Method
 o getConstructor
  public Constructor getConstructor(Class parameterTypes[]) throws NoSuchMethodException, SecurityException
この Class オブジェクトが表すクラスの指定の public 構築子を反映する Constructor オブジェクトを返します。parameterTypes パラメータは、構築子の形式パラメータ型を宣言順に識別する Class オブジェクトの配列です。

反映する構築子は、この Class オブジェクトが表すクラスのすべての構築子について、全く同じ形式パラメータ型を持つ public 構築子を検索して見つけ出します。

例外: NoSuchMethodException
一致するメソッドが見つからない場合
例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Constructor
 o getDeclaredClasses
  public Class[] getDeclaredClasses() throws SecurityException
この Class オブジェクトが表すクラスのメンバとして宣言されたすべてのクラスおよびインタフェースを反映する Class オブジェクトの配列を返します。これには、クラスが宣言した public, protected, デフォルト (パッケージ) アクセス、および private クラスとインタフェースは含まれますが、継承クラスとインタフェースは含まれません。クラスが、メンバとしてクラスまたはインタフェースを宣言しない場合、またはこの Class オブジェクトがプリミティブ型を表す場合は、長さが 0 の配列を返します。

例外: SecurityException
情報へのアクセスが拒否された場合
 o getDeclaredFields
  public Field[] getDeclaredFields() throws SecurityException
この Class オブジェクトが表すクラスまたはインタフェースが宣言したすべてのフィールドを反映する Field オブジェクトの配列を返します。これには、 public, protected, デフォルト (パッケージ) アクセス、および private フィールドは含まれますが、継承フィールドは含まれません。クラスまたはインタフェースがフィールドを宣言しない場合、またはこの Class オブジェクトがプリミティブ型を表す場合は、長さが 0 の配列を返します。Java 言語仕様のセクション 8.2 と 8.3 を参照してください。

例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Field
 o getDeclaredMethods
  public Method[] getDeclaredMethods() throws SecurityException
この Class オブジェクトが表すクラスまたはインタフェースが宣言したすべてのメソッドを反映する Method オブジェクトの配列を返します。これには、 public, protected, デフォルト (パッケージ) アクセス、および private メソッドは含まれますが、継承メソッドは含まれません。クラスまたはインタフェースがメソッドを宣言しない場合、またはこの Class オブジェクトがプリミティブ型を表す場合は、長さが 0 の配列を返します。Java 言語仕様のセクション 8.2 と 8.3 を参照してください。

例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Method
 o getDeclaredConstructors
  public Constructor[] getDeclaredConstructors() throws SecurityException
この Class オブジェクトが表すクラスが宣言したすべての構築子を反映する Constructor オブジェクトの配列を返します。これらは、 public, protected, デフォルト (パッケージ) アクセス、および private 構築子です。この Class オブジェクトがインタフェースまたはプリミティブ型を表す場合は、長さが 0 の配列を返します。Java 言語仕様のセクション 8.2 を参照してください。

例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Constructor
 o getDeclaredField
  public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException
この Class オブジェクトが表すクラスまたはインタフェースの指定の宣言フィールドを反映する Field オブジェクトを返します。name パラメータは、要求フィールドの単純な名前を指定する String です。

例外: NoSuchFieldException
指定名のフィールドが見つからない場合
例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Field
 o getDeclaredMethod
  public Method getDeclaredMethod(String name,
                                  Class parameterTypes[]) throws NoSuchMethodException, SecurityException
この Class オブジェクトが表すクラスまたはインタフェースの指定の宣言メソッドを反映する Method オブジェクトを返します。name パラメータは、要求メソッドの単純な名前を指定する String です。parameterTypes パラメータは、メソッドの形式パラメータ型を宣言順に識別する Class オブジェクトの配列です。

例外: NoSuchMethodException
一致するメソッドが見つからない場合
例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Method
 o getDeclaredConstructor
  public Constructor getDeclaredConstructor(Class parameterTypes[]) throws NoSuchMethodException, SecurityException
この Class オブジェクトが表すクラスまたはインタフェースの指定の宣言構築子を反映する Constructor オブジェクトを返します。parameterTypes パラメータは、構築子の形式パラメータ型を宣言順に識別する Class オブジェクトの配列です。

例外: NoSuchMethodException
一致するメソッドが見つからない場合
例外: SecurityException
情報へのアクセスが拒否された場合
参照:
Constructor
 o getResourceAsStream
  public InputStream getResourceAsStream(String name)
指定名のリソースを検索します。この名前を持つリソースが見つからないと、null を返します。指定クラスに関連したリソースの検索規則は、クラスの ClassLoader によって実装されます。

命名規則を適用したあとは、Class メソッドは ClassLoader メソッドに権限を渡します。「/」 で始まるリソース名は、そのまま使います。それ以外の場合は、「.」 から 「/」 に変換したあとで、パッケージの名前を付けます。

参照:
ClassLoader
 o getResource
  public URL getResource(String name)

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス