Class
次のようなものを使用してオブジェクトから動的に配列を作成する方法はありますか
MyClass[].newInstance();
がスローされることは承知してい InstantiationException
ますが、その型を示す配列をClass
オブジェクトでインスタンス化する方法はありますか?
Class
次のようなものを使用してオブジェクトから動的に配列を作成する方法はありますか
MyClass[].newInstance();
がスローされることは承知してい InstantiationException
ますが、その型を示す配列をClass
オブジェクトでインスタンス化する方法はありますか?
java.lang.reflect.Array.newInstance()は J2ME では使用できないため、オブジェクトごとにこれを行うにはループが必要だと思います。
private Object[] createArray(String fullClassName, int length) {
Object[] objects = new Object[length];
try {
Class c = Class.forName(fullClassName);
for (int i = 0; i < objects.length; i++) {
objects[i] = c.newInstance();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
return objects;
}
名前を完全修飾することを忘れないでください (文字列化されたクラス名を使用している場合):
Object[] array = createArray("mypackage.Widget", 10);
と
package mypackage;
public class Widget {
public int foo() {
return 5;
}
}
getConstructor() メソッドはBlackBerry クラスでは使用できないため、引数のないコンストラクターを使用したオブジェクトの作成に限定されることに注意してください。