0
有沒有一種方法可以讓我做這樣的事情:有沒有辦法使用GWT.create(...)來實例化一個泛型類的類?
public class Foo<Bar> {
public Bar newBar() {
return GWT.create(/* something useful here */);
}
}
將這工作,例如:
public class Foo<Bar> {
public Bar newBar(Class<Bar> prototype) {
return GWT.create(prototype);
}
}
在那裏我會如做new Foo<MyBar>().newBar(MyBar.class)
?
但是,理想情況下,我甚至不需要傳遞原型對象。
GWT.create(Bar)不能正常工作,這太糟糕了。這是不正確的Java語法,並且由於類型擦除,該構造在常規Java中甚至沒有意義,但是GWT編譯器可以提供所有可用的信息,它需要足夠聰明才能正確實現。但我想這是相當附帶的使用情況反正...讓我留下你的答案几天,但是,以防萬一有一個好主意,以另一種方式來實現相同的事情... –
下一次帶着你想做的事,而不是你如何去做;)。實現這種魔術的最好方法仍然是GWT.create,但是在代碼的不同位置,並且有一個生成器爲你實現帶有它所具有的類型細節的'newBar'。考慮UiBinder和各種編輯器驅動程序類型 - 擴展接口,添加通用參數,GWT。創建結果,生成器使用通用參數來完成其餘部分。評論太長以顯示如何去做,但可能值得一試。 –
注意:不要忽略你如何去做,而是帶着問題而不是解決方案。知道你已經嘗試了什麼,可以更容易地建議如何修復它,或者嘗試另一種方法。 –