2
我有一個關於可以在Java中返回參數化泛型類型的方法的問題。忍受我,因爲我可能不會簡明地解釋它!假設我們有以下幾條:返回一個泛型類型的新實例,其中T設置爲給定arg的類型
public class SomeClass<T extends AnotherType> extends SomeSuperClass<T>{
private AnotherType member;
public SomeClass(AnotherType at){
member = at;
}
public SomeSuperClass<xxx> foo(AnotherType bar){
return new SomeSuperClass<xxx>(bar);
}
}
所以我們有這個小工廠的方法'foo'。我可以用什麼來代替'xxx'來表示返回的新實例的參數化類型是'bar'對象的特定類型。例如如果bar是Bar類(AnotherType的一個子類),那麼我們將返回一個SomeSuperClass<Bar>(bar)
的實例
我知道我可以使用'?'放置任何類型和有:
return new SomeSuperClass<?>(bar);
,但我希望更具體使得:
return new SomeSuperClass<bar.class>(bar);
我不能使用T,櫃面酒吧的類型是在SomeSuperClass層次更高?同樣只使用SomeClass<AnotherType>
又太模糊了。
在這種情況下使用的語法是什麼?
我誤解了你的構造函數,這絕對是一個簡潔的方式來處理它。 –
是的,這似乎正是我需要的!我只是因爲某種原因才解決它!謝謝! – ComethTheNerd