Utilice la clase opcional para determinar elegantemente el nulo en Java

Prefacio

Nuevas funciones de Java8: Opcional

Es un objeto contenedor que puede ser nulo. Opcional proporciona muchos métodos útiles, por lo que no necesitamos verificar explícitamente valores nulos, y podemos hacer que nuestro código sea más elegante e impresionante.

 

Antes de Java8, el método de vaciado más utilizado

  Objeto de estudiante

@Data
public class Student {
    private String name;

    private Hobby hobby;

    public Optional<Hobby> getHobbyOfNull(){
        return Optional.ofNullable(this.hobby);
    }

}    

  Objeto de hobby

@Data
public class Hobby {
    private String name;
}

 

String name = student.getName();
String hobbyName = student.getHobby().getName();

  Cuando el objeto es nulo, la referencia directa provocará una NullPointerException. Debe   realizar un juicio nulo antes de llamar a cada objeto.

// 示例一 嵌套参数
String name ="";
if(student != null){
    if (student.getName() != null){
        name = student.getName();
    }
}

//示例二 嵌套对象
String hobbyName ="";
if(student != null){
    Hobby hobby = student.getHobby();
    if (hobby != null && hobby.getName() != null){
        hobbyName = hobby.getName();
    }
}

  Cuando la relación jerárquica aumenta, el código estará muy hinchado. 

  

Manera opcional  

示例一 
String name = Optional.ofNullable(student).map(e -> e.getName()).orElse("");

示例二
hobbyName = Optional.ofNullable(student).flatMap(Student::getHobbyOfNull).map(Hobby::getName).orElse("");

 

 

Supongo que te gusta

Origin blog.csdn.net/javanbme/article/details/114142094
Recomendado
Clasificación