2015-01-09 2 views
0

Java에서 매개 변수화 된 생성자가있는 클래스 집합을 가져 와서 런타임에 각 인스턴스를 인스턴스화 할 수 있습니까? 이러한 클래스에는 기본 유형 인수를 여러 개 사용할 수있는 생성자가 하나만 있지만 인수의 수는 클래스마다 다를 수 있습니다.매개 변수화 된 생성자를 사용하여 주어진 클래스 집합 인스턴스화

public class One { public One(int a) { } } 
public class Two { public Two(char a, int b) { } } 
public class Three { public Three(float a, char b, int c) { } } 
public class Four { public Four(float a, char b, int c) { } } 
+0

당신이 할 수있는, 예를 들어, 우리가 런타임에 인스턴스화 할 네 가지 클래스는 생성자를 찾으십시오 (단 하나만있는 것처럼). 그러나'a','b','c' 등의 값은 어디서 올까요? 톰? –

+0

@RC 확실하지 않습니다. Constructor.newInstance()를 사용할 때조차도 컴파일 타임 동안 인수의 수와 순서를 알아야합니다. – user928112

답변

2
Class oneC = Class.forName("One"); // use FQCN 
Contructor constructor = oncC.getConstructors()[0]; // assuming that the class has only 1 constructor 
Class<?>[] paramTypes = constructor.getParameterTypes(); 
// Iterate paramTypes, create each parameter value and then call constructor.newInstance(...) 

참조 : : 반사

관련 문제