Задать вопрос
saroff
@saroff
Enterprise Java Developer

Новые возможности java 8, использовать или нет?

Я знаю, что java 8 уже не такая уж и новая, но до этого времени я пытался разобраться с 7 и дальше решил пока не лезть. Сегодня посмотрел на список новых возможностей java 8 и... как-то засомневался я. Стоит ли использовать их? В том плане, насколько важно уметь их использовать. Потому что например лямбды, хоть и укорачивают код, но в некотором роде являются "магией", которая скрывает от нас часть того, что происходит на самом деле.
  • Вопрос задан
  • 438 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
Applez
@Applez
Разраб
Все делается для вашего удобства. Вам решать.
Ответ написан
Комментировать
Можно начать с малого, если боитесь стримов. Скажем, такой фрагмент кода на Java7:

Map<String, List<Item>> items = new HashMap<>();

public void addItem(String key, Item item) {
  List<Item> list = items.get(key);
  if(list == null) {
    list = new ArrayList<>();
    items.put(key, list);
  }
  list.add(item);
}


Нечто подобное встречается очень часто. В Java 8 это выглядит так:
Map<String, List<Item>> items = new HashMap<>();

public void addItem(String key, Item item) {
  items.computeIfAbsent(key, k -> new ArrayList<>()).add(item);
}


Не только короче, но и быстрее, потому что ключ ищется один раз, а не два в случае вставки. Если же у вас ConcurrentMap, то правильный алгоритм вычисления несуществующего ключа, который бы минимально блокировал мэпку и при этом выполнялся не более одного раза, раньше написать было вообще нетривиально. А теперь так же, в одну строчку.
Ответ написан
Комментировать
@Alexey_Kutepov
Разработчик программного обеспечения
Если начальник разрешит использовать Java 8, то вперёд и с песней =)
Ответ написан
Комментировать
Satori_Kanzo
@Satori_Kanzo
Make code not war
Соглашусь с Applez. Ну а от себя...

Во-первых: по-поводу "магии" - все программирование такое, если вы не знаете принцип работы микроконтроллеров и на каком этапе электрическое напряжение перерастает в код.
Во-вторых: кто Вы такой, чтобы ставить под сомнение работу команды разработчиков языка Java? =)
Ответ написан
@TachikomaGT
Для того чтобы, скажем, Stream API не являлся для вас «магией» посмотрите видео от Сергея Куксенко на https://www.youtube.com/user/JUGRuVideo

Для простых случаев код может исполняться немного медленнее, для сложных - быстрее. В любом случае вы получите бОльшую выразительность и, как следствие, безопасность (так же относится и к Optional).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы