web-dev-qa-db-ja.com

クラスオブジェクトからクラスをインスタンス化します

Javaでは、クラスオブジェクトを使用して、そのタイプのクラスを動的にインスタンス化できますか?

つまり、このような関数が必要です。

Object foo(Class type) {
    // return new object of type 'type'
}
19
akula1001

Class.newInstance

Object foo(Class type)
throws InstantiationException, IllegalAccessException {
    return type.newInstance();
}

...しかし、それは引数がゼロのコンストラクターがあることを前提としています。より堅牢なルートは、 Class.getConstructor または Class.getConstructors 、これにより、 Java.lang.reflect パッケージ。

28
T.J. Crowder

使用する:

type.newInstance()

空のコンストラクターを使用してインスタンスを作成する場合、またはメソッドtype.getConstructor(..)を使用して関連するコンストラクターを取得し、それを呼び出します。

2
Eyal Schneider

はい、それはリフレクションと呼ばれています。これには、Class newInstance() メソッドを使用できます。

1
akf

newInstance()メソッドを使用します。

0
GG.