我有一个相当大且烦人的参数化类嵌套,例如下面的代码:
HashMap<ExampleClass, ArrayList<ArrayList<ADifferentClass>>> PITA_var = new HashMap<ExampleClass, ArrayList<ArrayList<ADifferentClass>>>();
正如您所看到的,声明使用此嵌套ArrayList的变量非常困难,尤其是当声明在屏幕外扩展时。我想让Eclipse(技术上我可以使用STS)至少解决这个问题,但我一直无法确定如何解决。有什么帮助吗?
PS我知道声明继承这些类型的附加类是一件简单的事情;我已经在某种程度上这样做了,进一步的子类化是不切实际的。
答案 0 :(得分:1)
我不使用Eclipse,所以这个答案可能不是你想要的,但这里有一些提示。
首先,使用接口。那种类型应该是
Map<ExampleClass, List<List<ADifferentClass>>>
其次,如果可以,请升级到Java 7或8.然后您可以执行以下操作:
Map<ExampleClass, List<List<ADifferentClass>>> map = new HashMap<>();
PS我知道声明继承这些类型的附加类是一件简单的事情;我已经在某种程度上这样做了,进一步的子类化是不切实际的。
不要那样做。使用子类来摆脱类型参数被认为是反模式。
最后,考虑一下您的设计是否可以改进。可能有一个更好的方法,而不是Map
,List
的值为List
s。