У меня вопрос с Java 8 Optionals.
Приведенный ниже код выдает ошибку компиляции:
Integer number = Optional.ofNullable(new Integer(10));
Но когда мы делаем следующее, оно не , я не понимаю, как это работает:
Integer number = Optional.ofNullable(new Integer(10)).orElse(10);
Если мы посмотрим на документацию Optional.ofNullable()
, он вернет объект типа static <T> Optional<T> ofNullable(T value)
, который означает, что это внутреннее приведение типа, но в документации сказано, что тип возвращаемого значения Optional
,
Я получаю, что тип возвращаемого метода .orElse
равен T
, который будет нормально работать , если переходит в состояние orElse
, т. Е. В случае, если переданный объект равен null
, но если это не null, как это типизирует это?