Сегодня я увидел класс, похожий на это на моем рабочем месте:переменная класса, имеющие один и тот же тип самого класса
public class A {
private Map<String, A> myMap = Maps.newHashMap();
}
Код компилируется, работает и делает то, что предполагают, чтобы сделать. Но он может быть реорганизован на другой дизайн. Но я не понимаю, почему этот дизайн был выбран.
Вы можете сделать глупые вещи, как это:
this.myMap.get("x").myMap.get("x").myMap.get("x");
Мой вопрос:
Есть ли действительно хорошая ситуация, когда нам нужно применить такую конструкцию? Зачем?
Для расширения это, вероятно, имеет смысл: 'public class Person {Map relationshipMap}' где 'relationshipMap' - это коллекция людей, а строка описывает отношения (мать, отец, ребенок и т. Д.), –