Comments 7
Нормальный синтаксис в итоге получился. Четкое соответствие Optional и по виду и по поведению и по сигнатурам. Просто и понятно в итоге.
А кто-то смотрел исходники? Какой механизм позволяет делать потоко безопасное присваивание? Всё тот же double check locking?
У них есть jep с новым ключевым словом lazy, но это на будущее. Они выпустили обзор на канале java по разбору этой фичи, там более подробно объясняют и показывают примеры использования https://youtu.be/uMypEIx8qY8?si=KQn3d-Ad8_Dwt5_r
Есть превью этого джепа? Пример синтаксиса?
Странно тащить ключевое слово ради этого, лучше бы делегаты как в Котлине завезли и можно было бы и lazy делешат сделать (https://youtrack.jetbrains.com/issue/KT-80669/Add-Lazy-implementation-using-JDKs-25-StableValues-API) и много чего еще красивого и DSL-подобного
Чем этот StableValue отличается от ломбокоской lazy? Если реализация - только еще один библиотечный класс, работающий на обычной java, то зачем все это?
Чем Jep-овская приблуда лучше этого кода?
public static class PetClientController {
@Getter(lazy = true)
private final JavaMailSender javaMailSender = new JavaMailSenderImpl();
public void adoptPet(SecurityProperties.User user, Object pet) {
//...
getJavaMailSender().send(new MimeMessage(...));
}
}
JEP 502 — Stable Values. Новая фича из Java 25