Использование объектов, допускающих значение NULL, в дополнительных методах после покрытия их с помощью ofNullableJAVA

Программисты JAVA общаются здесь
Anonymous
Использование объектов, допускающих значение NULL, в дополнительных методах после покрытия их с помощью ofNullable

Сообщение Anonymous »

Я наткнулся на приведенный ниже код:

Код: Выделить всё

public void method(MyObject obj) {
String value = Optional.ofNullable(obj)
.map(x -> obj.doSomething())
.orElse(MyObject.DEFAULT_VALUE);

}
Мне интересно узнать об использовании x -> obj.doSomething() вместо x -> x.doSomething() в карте > метод.
Здесь, даже если obj имеет значение null, исключение NullPointerException НЕ будет выброшено, поскольку мы вызываем метод ofNullable перед картой и, следовательно, функция сопоставления будет вызываться только тогда, когда obj не имеет значения null.
Таким образом, с точки зрения результатов, как x -> obj.doSomething(), так и x -> x.doSomething() будут эквивалентны в случае необязательного. (Очевидно, что результат будет другим в случае Stream или при использованииOptional.of).
Есть ли какие-либо другие различия? И с точки зрения использования, я думаю, что x -> x.doSomething() должно быть предпочтительнее, чем использование самого фактического объекта.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ofnullable

Вернуться в «JAVA»