我有一个相当大且令人讨厌的参数化类的嵌套,例如:
HashMap<ExampleClass, ArrayList<ArrayList<ADifferentClass>>> PITA_var = new HashMap<ExampleClass, ArrayList<ArrayList<ADifferentClass>>>();正如您所看到的,声明使用这种嵌套ArrayList的变量是一件很痛苦的事情,特别是当声明扩展到屏幕之外时。我希望Eclipse (从技术上讲,我使用的是STS)至少能解决这个问题,但我还不能确定如何做到这一点。有什么帮助吗?
PS我知道声明这些类型的子类是一件很简单的事情;我已经在一定程度上这样做了,进一步的子类化是不现实的。
发布于 2015-10-14 05:33:08
我不使用Eclipse,所以这个答案可能不是您想要的,但这里有一些技巧。
首先,使用接口。该类型应为
Map<ExampleClass, List<List<ADifferentClass>>>其次,如果可以,升级到Java 7或8。然后,您可以执行以下操作:
Map<ExampleClass, List<List<ADifferentClass>>> map = new HashMap<>();PS我知道声明其他类作为这些类型的子类将是一件简单的事情;我已经在一定程度上这样做了,进一步的子类化是不现实的。
不要那样做。仅仅使用子类来摆脱类型参数被认为是一种反模式。
最后,考虑是否可以改进您的设计。可能有一种比拥有一个值为Lists的Lists的Map更好的方法。
https://stackoverflow.com/questions/33112869
复制相似问题