инициализации объектов и как относитесь к этому? Потому что меня аж передёргивает, когда это вижу. Может это старческое уже?
var map = new HashMap<String, String>() {{
put("foo", "bar");
}}
Это подсвечивает линтер и не рекомендуется к использованию в целом
В тестах еще можно, но я бы использовал Map.of
У нас на работе есть такие места. Иногда есть такая необходимость, сразу первым элементом заполнить коллекцию. И Линтер ничего не подсвечивает. А чего «передергивает» от этого?
Чего не рекомендуется? Кем не рекомендуется?
Тут, думаю, настраиваемо на уровне линтера
Блок/стат блок , инит метод какой нить https://stackoverflow.com/questions/1958636/what-is-double-brace-initialization-in-java
В первую очередь, потому что те кто использует не знают как оно работает и думают что это такая дефолтная конструкция в java, а потом удивляются "сайдэфектам"
Хз, создавать анонимный класс ради заполнения поля не оч))
Оу. Я об этом не знал. Думал это один из стандартных способов инициализации коллекции
Map.of вернёт иммутабл коллецию, стоит учитывать это.
Да, но можно ее передать в конструктор HashMap)
Можно, но будет создано 2 мапы, да и конструкция более монтсруозная получается. Имхо - так себе выигрыш, я бы вынес в отдельный метод где создастся стандартным способом
Это действительно самое дешёвое, а в условия java 8- можно результат обернуть в unmodifiableMap
Обсуждают сегодня