Java 7中是否有可能使用我手頭有的Class
對象來實例化具有泛型類型的匿名內部類?在變量中使用Class實例化Java匿名內部類
這裏的通用類,我試圖實例的簡化版本:
abstract class DomainBuilder<E> {
private final Class<E> entityClass
public DomainBuilder() {
this.entityClass = (Class<E>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
...
}
創建一個匿名內部類,當我指定我想建立在編譯時類正常工作:
DomainBuilder builder = new DomainBuilder<MyDomainClass>() {}
我希望能夠讓這個我可以用我已經在運行時是這樣確定的Class
變量,但還沒有想出如何尚未:
Class clazz = MyDomainClass.class
...
DomainBuilder builder = new DomainBuilder<clazz>() {}
我也嘗試創建沿着這些路線的方法,沒有運氣:
Class clazz = MyDomainClass.class
DomainBuilder builder = builderFor(clazz)
public static DomainBuilder<T> builderFor(Class<T> t) {
return new DomainBuilder<T>(entityManager){}
}
是這樣的可能嗎?
所以,你的意思是我的'DomainBuilder'採用'Class'參數並直接設置該變量?這可能適用於我的用例,謝謝你的建議。 –