在将泛型引入Java语言之前,我会编写封装集合集合的类.例如:
class Account {
private Map tradesByRegion; //KEY=Region, VALUE=TradeCollection
}
class TradeCollection {
private Map tradesByInstrument; //KEY=Instrument, Value=Trade
}
Run Code Online (Sandbox Code Playgroud)
当然,对于泛型,我可以这样做:
class Account {
private Map<Region, Map<Instrument, Trade>> trades;
}
Run Code Online (Sandbox Code Playgroud)
我现在倾向于选择选项#2(在选项#1的通用版本上),因为这意味着我最终不会出现仅仅为了包装集合而存在的类的扩散.但我有一种唠叨的感觉,这是糟糕的设计(例如,在声明新类之前我应该使用多少嵌套集合).意见?
2 更好,因为:
有什么可以推荐的吗1 诚然, Map< Integer 、 < Map < String、 < Map< ...泛型有点难以习惯,但在我看来,它比使用映射、映射列表和列表映射的代码更容易理解地图,以及充满地图列表的自定义对象。