Что делает этот код?
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".