1
문자열 변수로 새 클래스 인스턴스를 만들고이 생성자에 매개 변수로 int []를 전달하고이 인스턴스를 배열 목록에 저장하려고합니다.문자열 이름으로 클래스 인스턴스를 만드는 방법
무엇보다 클래스는 다른 클래스에서 파생됩니다. 그리고 그 배열리스트는 Bar 타입입니다. 따라서 :
List<Bar> something = new ArrayList<Bar>();
String name = "Foo";
int[] arr = {1, 2, 3, 4, 5};
try {
Class myClass = Class.forName(name);
Class[] types = {Integer.TYPE};
Constructor constructor = myClass.getConstructor(types);
Object[] parameters = {arr};
Object instanceOfMyClass = constructor.newInstance(parameters);
something.add(instanceOfMyClass);
} catch(ClassNotFoundException e) {
// handle it
} catch(NoSuchMethodException e) {
// handle it
} catch(InstantiationException e) {
// handle it
} catch(IllegalAccessException e) {
// handle it
} catch(InvocationTargetException e) {
// handle it
}
이것은 내가 생각해 냈지만, 불행히도 작동하지 않습니다. 어떻게 정수 배열을 전달할 수 있습니까? (형식은 무엇입니까?) 이 인스턴스를 여기에있는 배열 목록에 추가하려면 어떻게해야합니까 (Foo 클래스의 인스턴스를 Foo 클래스로 캐스팅해야한다는 오류가 발생합니다).
'((바) instanceOfMyClass) something.add,' – mostruash
은 무엇 라인 오류를 던지고있다? 스택 트레이스는 무엇입니까? (또는 이것은 컴파일 타임 오류입니까?) –
사실,이 두 가지만 오류를주고 있었으므로 문제가되지 않습니다. ;) – khernik