Что делает этот код?
publicstaticvoidmain(Stringl] args) {
String hello = "Hello";
Optional<String> opt = Optional.ofNullable(hello): // строка 1
hello = null;
opt.ifPresent(System.out:println);
}
Выведет в консоль Hello
Код не компилируется на строке 1
Код бросает ошибку при запуске
Ничего не будет выведено в консоль
Другие предметы Колледж Работа с классом Optional в Java Java программирование колледж код Optional ifPresent консоль вывод ошибки компиляция Новый
Давайте разберем данный код и выясним, что он делает, а также какие ошибки могут возникнуть при его выполнении.
Вот оригинальный код с исправлениями для лучшего восприятия:
public static void main(String[] args) { String hello = "Hello"; Optional<String> opt = Optional.ofNullable(hello); // строка 1 hello = null; opt.ifPresent(System.out::println); }
Теперь мы можем проанализировать каждую часть кода:
На первой строке в методе main
создается строка hello
и инициализируется значением "Hello".
На строке 1 создается объект Optional
с помощью метода Optional.ofNullable(hello)
. Поскольку hello
в этот момент не равен null
, opt
будет содержать значение "Hello".
Затем переменной hello
присваивается значение null
.
Метод opt.ifPresent(System.out::println)
проверяет, содержится ли значение в Optional
. Поскольку opt
все еще содержит "Hello", этот код выведет "Hello" в консоль.
Таким образом, код действительно выведет "Hello" в консоль.
Теперь давайте рассмотрим варианты ответов:
Таким образом, правильный ответ - "Выведет в консоль Hello".