JavaTM 2 Platform
Std. Ed. v1.3

java.lang.reflect
クラス Constructor

java.lang.Object
  |
  +--java.lang.reflect.AccessibleObject
        |
        +--java.lang.reflect.Constructor
すべての実装インタフェース:
Member

public final class Constructor
extends AccessibleObject
implements Member

Constructor は、クラスの単一コンストラクタについての情報と単一コンストラクタへのアクセスを提供します。

Constructor は、基になるコンストラクタの仮パラメータと、newInstance() への実パラメータを一致させる場合に、拡張変換が発生することを許可しますが、縮小変換が発生する場合は IllegalArgumentException をスローします。

関連項目:
Member, Class, Class.getConstructors(), Class.getConstructor(Class[]), Class.getDeclaredConstructors()

インタフェース java.lang.reflect.Member から継承したフィールド
DECLARED, PUBLIC
 
メソッドの概要
 boolean equals(Object obj)
          Constructor を指定されたオブジェクトと比較します。
 Class getDeclaringClass()
          Constructor によって表されるコンストラクタを宣言するクラスを表す Class オブジェクトを返します。
 Class[] getExceptionTypes()
          この Constructor オブジェクトで表される基になるコンストラクタによってスローされるように宣言されている、例外の型を表す Class オブジェクトの配列を返します。
 int getModifiers()
          Constructor オブジェクトによって表されるコンストラクタの Java 言語修飾子を整数として返します。
 String getName()
          Constructor の名称を文字列として返します。
 Class[] getParameterTypes()
          Constructor オブジェクトによって表されるコンストラクタの仮パラメータ型を宣言順で表す Class オブジェクトの配列を返します。
 int hashCode()
          Constructor のハッシュコードを返します。
 Object newInstance(Object[] initargs)
          指定された初期化パラメータで、このコンストラクタの宣言クラスの新しいインスタンスを生成および初期化する場合は、この Constructor オブジェクトによって表されるコンストラクタを使用します。
 String toString()
          Constructor を記述する文字列を返します。
 
クラス java.lang.reflect.AccessibleObject から継承したメソッド
isAccessible, setAccessible, setAccessible
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

メソッドの詳細

getDeclaringClass

public Class getDeclaringClass()
Constructor によって表されるコンストラクタを宣言するクラスを表す Class オブジェクトを返します。
定義:
インタフェース Member 内の getDeclaringClass

getName

public String getName()
Constructor の名称を文字列として返します。これは常に、コンストラクタを宣言したクラスの単純名と同じです。
定義:
インタフェース Member 内の getName

getModifiers

public int getModifiers()
Constructor オブジェクトによって表されるコンストラクタの Java 言語修飾子を整数として返します。修飾子を復号化する場合に、Modifier クラスを使用する必要があります。
定義:
インタフェース Member 内の getModifiers
関連項目:
Modifier

getParameterTypes

public Class[] getParameterTypes()
Constructor オブジェクトによって表されるコンストラクタの仮パラメータ型を宣言順で表す Class オブジェクトの配列を返します。基になるコンストラクタにパラメータが設定されていない場合には、長さ 0 の配列が返されます。

getExceptionTypes

public Class[] getExceptionTypes()
この Constructor オブジェクトで表される基になるコンストラクタによってスローされるように宣言されている、例外の型を表す Class オブジェクトの配列を返します。コンストラクタが throws 節で例外を宣言していない場合は、長さ 0 の配列を返します。

equals

public boolean equals(Object obj)
Constructor を指定されたオブジェクトと比較します。オブジェクトが同じ場合には true を返します。2 つの Constructor は、同じクラスで宣言され、同じ仮パラメータ型が設定されている場合には同じです。
オーバーライド:
クラス Object 内の equals
クラス java.lang.Object からコピーされたタグ:
パラメータ:
obj - 比較対象の参照オブジェクト
戻り値:
obj 引数に指定されたオブジェクトとこのオブジェクトが等しい場合は true、そうでない場合は false
関連項目:
Boolean.hashCode(), Hashtable

hashCode

public int hashCode()
Constructor のハッシュコードを返します。このハッシュコードは、クラス名を宣言する基になるコンストラクタのハッシュコードと同じです。
オーバーライド:
クラス Object 内の hashCode
クラス java.lang.Object からコピーされたタグ:
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
Constructor を記述する文字列を返します。この文字列の書式は、存在する場合にはコンストラクタのアクセス修飾子、定義クラスのフルネーム、括弧で囲まれたコンマ区切りのコンストラクタの仮パラメータ型のリストが順番に続きます。以下に例を示します。
    public java.util.Hashtable(int,float)
 

コンストラクタに指定できる修飾子は、アクセス修飾子の publicprotected または private だけです。指定できる修飾子は 1 つだけです。デフォルト (package) アクセスを持つコンストラクタでは、1 つも指定しません。

オーバーライド:
クラス Object 内の toString
クラス java.lang.Object からコピーされたタグ:
戻り値:
このオブジェクトの文字列表現

newInstance

public Object newInstance(Object[] initargs)
                   throws InstantiationException,
                          IllegalAccessException,
                          IllegalArgumentException,
                          InvocationTargetException
指定された初期化パラメータで、このコンストラクタの宣言クラスの新しいインスタンスを生成および初期化する場合は、この Constructor オブジェクトによって表されるコンストラクタを使用します。個々のパラメータは、プリミティブな仮パラメータと一致させるために自動的にラップ解除され、プリミティブパラメータと参照パラメータは両方とも必要に応じてメソッド呼び出し変換の対象になります。新しく作成および初期化されたオブジェクトを返します。

作成は、次に示すステップで順に進行します。

基になるコンストラクタを宣言するクラスが abstract クラスを表す場合、作成側は InstantiationException をスローします。

この Constructor オブジェクトによって Java 言語アクセス制御が実施され、基本となるコンストラクタにアクセスできない場合、作成側は IllegalAccessException をスローします。

initargs で指定される実パラメータ数が、基本となるコンストラクタによって要求される仮パラメータ数と異なる場合、作成側は IllegalArgumentException をスローします。

コンストラクタの宣言クラスの新しいインスタンスが生成され、そのフィールドはデフォルトの初期値に初期化されます。

指定された initargs 配列内のそれぞれの実パラメータについて以下に示します。

対応する仮パラメータにプリミティブ型が指定されている場合は、オブジェクト値をそのプリミティブ型の値に変換するためにラップ解除変換が試行されます。この試行が無事に終了しない場合、作成側は IllegalArgumentException をスローします。

ラップ解除のあと、メソッド呼び出し変換によってパラメータ値を対応する仮パラメータ型に変換できない場合、作成側は IllegalArgumentException をスローします。

コンストラクタの宣言クラスがまだ初期化されていない場合は、このクラスが初期化されます。コンストラクタの宣言クラスの新しいインスタンスが生成され、そのフィールドがデフォルトの初期値に初期化されます。

制御は、新しいインスタンスを初期化するために、基本となるコンストラクタに移動します。コンストラクタが例外をスローして終了すると、その例外は InvocationTargetException に配置され、次に newInstance の呼び出し側にスローされます。

コンストラクタが正常に完了すると、新しく生成および初期化されたインスタンスが返されます。

例外:
IllegalAccessException - 基になるコンストラクタにアクセスできない場合
IllegalArgumentException - 実パラメータ数と仮パラメータ数が異なる場合、またはラップ解除変換またはメソッド呼び出し変換が失敗した場合
InstantiationException - 基本となるコンストラクタを宣言するクラスが abstract クラスを表す場合
InvocationTargetException - 基本となるコンストラクタが例外をスローする場合
ExceptionInInitializerError - このメソッドによる初期化が失敗した場合

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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.