Интересная функция, представленная в Java 8, - это класс Optional . Основная проблема, которую решает класс Optional, - это пресловутое исключение NullPointerException - исключение, которое хорошо знает каждый Java-программист.
По сути, это класс-оболочка, который содержит необязательные значения, что означает, что необязательный класс может содержать объекты или быть пустым.
Необязательный - мощный шаг к функциональному программированию на Java, помогающий достичь его в парадигме. Но значение Optional, очевидно, не только этого.
Начнем с простого варианта использования. До Java 8 любой вызов методов или свойств объекта мог вызвать исключение NullPointerException :
package test.optional;
public class School {
private Teacher teacher;
public Teacher getTeacher() {
return teacher;
}
}
package test.optional;
public class Teacher {
private Student student;
public Student getStudent() {
return student;
}
}