2014-01-30 5 views
3

GWT에서, 나는 동적으로 인스턴스화하려는 AA 일반적인 Class<T>을 가지고 T :지정된 클래스의 인스턴스를 만듭니다

class MyGenericClass<T> { 

    void foo(Class<T> clazz) { 

    ... 
    T t = GWT.create(clazz); //I want to instantiate T 
    } 

} 

그러나 나는 다음과 같은 컴파일 오류가 있습니다 만

을 클래스 리터럴을 GWT.create()에 대한 인수로 사용할 수 있습니다.

이 클래스를 인스턴스화하는 방법은 무엇입니까?

다른 스레드에서 나는 발견

GWT.create(Reflection.class).instantiate(YourClass.class); 

하지만이 인스턴스화 방법으로 Reflection라는 클래스를 찾지 못했습니다.

+0

내 대답이 도움이 되었습니까? 예라면 동의 할 수 있고 그렇지 않으면 그대로 둘 수 있습니다. – user1339772

답변

1

는 방법을 만들의 자바 문서는 그것을 말한다 생산 모드 컴파일러가 정적으로 컴파일 -에 요청 유형을 판별 할 수 있어야하기 때문에 클래스 리터럴이어야합니다

(클래스)를 작성하는 인수의 모든 시각. 클래스 변수를 사용하면 개발 모드에서 올바르게 작동하는 것으로 나타날 수 있으므로 까다로울 수 있습니다. 동적으로 인스턴스를 만들 수 없습니다 한마디로

http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/client/GWT.html#create(java.lang.Class) 는, 클래스 유형은 정적으로 컴파일시에 알고 있어야합니다.

GWT.create(YourClass.class) 
관련 문제