可能,我會問的是一個可怕的問題,因爲JAVA是強類型的語言,但我會問,確定。通用和動態關聯的類型
我想實現一些傑克遜將要映射到的模型。 假設我們有: 有一個屬性值的SomeObject。 SomeObject是一個接口:
interface SomeObject <T> {
T getValue();
}
值可以是布爾值,可以是List,也可以是簡單的字符串。 ObjectOne和ObjectTwo實現SomeObject 我想知道,如果我們將有這樣的對象:
List<SomeObject> someObject = new ArrayList<>();
,我們將不得不在該列表:ObjectOne,ObjectTwo如果有可能調用的getValue每個那些對象,並沒有將它投射到給定的課堂上,獲得適當的價值? 我知道我可以做這樣的事情:
(String) list.get(0).getValue();
但有一種方式來獲得這樣的結果:
String firstItemIsAString = list.get(0).getValue();
ArrayList secondItemIsAnArrayList = list.get(1).getValue();
我知道這是不是一個javascript,但可能與仿製藥的一些幫助這可能是不可思議的? 我會在SomeObjects的列表中添加該項目將以這樣的方式添加:
List<SomeObject> list = new ArrayList<>();
list.add(new ObjectOne<String>());
list.add(new ObjectTwo<ArrayList>());
不,泛型是編譯時構造。編譯時必須知道類型。 – 2015-04-02 22:21:27
所以就像我想的那樣。謝謝@SotiriosDelimanolis – 2015-04-02 22:23:47
也許如果我們知道你爲什麼想這樣做,我們可以建議一個可行的選擇。 – Radiodef 2015-04-02 22:30:02