Javaでは、クラスオブジェクトを使用して、そのタイプのクラスを動的にインスタンス化できますか?
つまり、このような関数が必要です。
Object foo(Class type) {
// return new object of type 'type'
}
Object foo(Class type)
throws InstantiationException, IllegalAccessException {
return type.newInstance();
}
...しかし、それは引数がゼロのコンストラクターがあることを前提としています。より堅牢なルートは、 Class.getConstructor
または Class.getConstructors
、これにより、 Java.lang.reflect
パッケージ。
使用する:
type.newInstance()
空のコンストラクターを使用してインスタンスを作成する場合、またはメソッドtype.getConstructor(..)を使用して関連するコンストラクターを取得し、それを呼び出します。
はい、それはリフレクションと呼ばれています。これには、Class newInstance()
メソッドを使用できます。
newInstance()メソッドを使用します。