В чём отличие Optional
Ответ
Отличие в том, что при наличии значения Optional
Соответственно, чтобы избежать лишнего обертывания примитивных значений при работе с int применяется OptionalInt , а при работе с объектами Integer — Optional
Рассмотрим на примере интерфейса с двумя методами:
interface Test {
int getInt();
Integer getInteger();
}
При обработке значений имеет смысл использовать соответствующие классы (на примере Stream API):
List
Использование IntStream и OptionalInt для поля типа Integer потенциально приведет к NullPointerException. Использование Optional
Необходимость специальных классов обусловлена тем, что в Java примитивные типы не могут использоваться в качестве параметров обобщенных типов. Из за этого классы Stream
Использовать вместо примитивов классы-обертки непозволительно из-за затрат производительности на упаковку значений в объекты. Поэтому для часто используемых примитивных типов создан набор специальных классов: IntStream, LongStream, DoubleStream и OptionalInt, OptionalLong, OptionalDouble
Комментариев нет:
Отправить комментарий