момент. Вот код:
public class TreeFactory {
private static Map<String, TreeType> treeTypes = new HashMap<>();
public static TreeType getTreeType(String name, Color color, String otherTreeData) {
TreeType result = treeTypes.get(name);
if (result == null) {
result = new TreeType(name, color, otherTreeData);
treeTypes.put(name, result);
}
return result;
}
HashMap определяется в самом начале класса. Дальше в HashMap не добавляют никакие данные, как я обычно и делаю. А потом уже из списка берётся значение:
TreeType result = treeTypes.get(name);
С чего вдруг ему там быть, если ещё не добавлено ничего в HashMap ?
так его там и нет, если пустая мапа с ключём нейм, то вернётся нул и будет создан экземпляр с переданными аргументами в начале
Обсуждают сегодня