2015-10-13 1 views
0

У меня есть довольно большое и досадное гнездо параметризованных классов, такие как следующие, например:Затмение Formatter: Wrap Вложенное ArrayList Объявление

HashMap<ExampleClass, ArrayList<ArrayList<ADifferentClass>>> PITA_var = new HashMap<ExampleClass, ArrayList<ArrayList<ADifferentClass>>>(); 

Как вы можете видеть, объявление переменных, которые используют эту вложенная ArrayList является боль, особенно когда декларация выходит за пределы экрана. Я хотел бы иметь Eclipse (хорошо технически я использую STS), по крайней мере, решить эту проблему, но я не смог определить, как это сделать. Любая помощь?

PS Я знаю, что было бы просто объявить дополнительные классы, которые подклассифицируют эти типы; Я уже делаю это до некоторой степени, и дальнейшее подклассирование было бы непрактичным.

+0

Какая версия Eclipse соответствует вашим требованиям STS? –

+0

Платформа Eclipse - версия 4.5.1, а версия средств разработки для Java - 3.11.1 – Bryant

ответ

1

Я не использую Eclipse, поэтому этот ответ может быть не тем, что вы ищете, но вот несколько советов.

Во-первых, используйте интерфейсы. Этот тип должен быть

Map<ExampleClass, List<List<ADifferentClass>>> 

Во-вторых, если вы можете перейти на Java 7 или 8. Затем вы можете сделать:

Map<ExampleClass, List<List<ADifferentClass>>> map = new HashMap<>(); 

PS Я знаю, что это было бы простой вопрос, чтобы объявить дополнительный классы, которые подклассифицируют эти типы; Я уже делаю это до некоторой степени, и дальнейшее подклассирование было бы непрактичным.

Не делайте этого. Использование подклассов только для того, чтобы избавиться от параметров типа, считается антипаттерном.

Наконец, рассмотрите, может ли ваш дизайн быть улучшен. Может быть лучше, чем с Map, где значения составляют List s от List s.

+0

Эй, посмотрите на это. Eclipse не жалуется на отсутствие параметризации. В любом случае, я все равно хотел бы включить параметры типа для удобочитаемости, если это разумно. Мне нравится предложение интерфейса; В последнее время я уезжаю от этого, так что это даже не произошло. – Bryant

Смежные вопросы