2012-12-13 4 views
0

은 내가 또한 클래스에 완전히 관련이없는 유형을 가지고 클래스를Java에서 런타임시 일반 클래스를 생성하는 방법은 무엇입니까?

myClass<T> 

있습니다.

제네릭 매개 변수 T가 Java에서 내 유형의 myClass를 어떻게 생성합니까?

나는
myClass.class.getConstructor() 

을 시도하지만 그보다 더를 얻을 수 없습니다. 생성자에 제네릭 매개 변수를 구체적으로 지정할 수 있습니까?

+2

귀하의 질문에 의미가 없습니다. 제네릭은 생성자에 전달되지 않습니다. 예 :'List list = new ArrayList ();'. 컴파일 시간 확인입니다. – m0skit0

+9

런타임시 일반 유형이 존재하지 않습니다. 해당하는 원시 형식을 만들어야합니다. –

+2

또한보십시오 http://docs.oracle.com/javase/tutorial/java/generics/erasure.html –

답변

2

제네릭은 컴파일 타임 검사이므로 런타임에 큰 의미가 없습니다. 리플렉션에서는 비 제네릭 타입을 사용할 수 있습니다.

MyClass<T> myClass = /* MyClass.class */.newInstance(); // gets a warning but works. 
+0

잘 경우에 이것 당신은 다만'MyClass를 할 것입니다 myClass = 새로운 MyClass ();' – newacct

+0

I MyClass.class가 컴파일시에 알려지지 않았거나 반사를 사용할 어떤 이유가 있다고 가정하고있다. –

관련 문제