我喜歡在java中創建數據庫表的類表示。 列被設計爲泛型類,以便它可以處理表列可能具有的所有不同數據類型。將不同的參數化類型存儲在Java中的同一通用數組列表中
public class TableColumn<T> {
...
}
表有0,...,N TableColumn來,所以我的表類看起來像:
public class Table {
protected ArrayList<TableColumn<T>> columns =
new ArrayList<TableColumn<T>>();
...
}
的想法是通過以下方式添加列。
Table t = new Table();
t.addColumn(String.class);
t.addColumn(Integer.class);
t.addColumn(Date.class);
t.addColumn(String.class);
,然後我可以操控通過以下方式的數據:
String a = t.Cols(2).Row(3);
t.Col(2).Row(3) = "b";
但我失去類型的Safty我目前achiving那...我的問題是如何實現,因爲列的方式潛在的不同數據類型列可以獲得。
有人有線索嗎?
所以你想'col(2)'是一個不同於col(3)'的類型?這是不可能的。只是因爲類型檢查發生在編譯時,並且參數*值*對這些沒有影響。 –
有沒有其他可行的方法來做到這一點?另一種概念另一種結構 –
你可以通過' T get()'方法將其僞裝成'T'來僞造*。這將允許'String x = foo.get()'和'Integer x = foo.get()'進行編譯。但這也是缺點:你失去了所有編譯時類型檢查。當你錯誤地使用它時,它只會在運行時崩潰並燒燬。 –