如何解决试图找到用嵌套的多个对象检查NullPointerException的最佳方法-Java 8
我正在尝试找到遇到卡住情况的最佳方法来检查空指针异常。请支持我。
这是主要班级:
@Getter
@Setter
@AllArgsConstructor
public class Person {
private String name;
private Car car;
private Address address;
}
这是汽车课:
@Setter
@Getter
@AllArgsConstructor
public class Car {
private String name;
private Insurance insurance;
}
这是保险课:
@Setter
@Getter
@AllArgsConstructor
public class Insurance {
private String name;
}
这是Address类:
@Setter
@Getter
@AllArgsConstructor
public class Address {
private String street;
}
这是要显示的类(演示):
@Setter
@Getter
public class InformationDto {
private String personName;
private String carName;
private String insuranceName;
private String streetName;
}
这是我尝试检查空指针异常的方法:
InformationDto dto = new InformationDto();
Optional.ofNullable(PERSON_CAR_NULL).map(i -> {
dto.setPersonName(i.getName());
Optional.ofNullable(i.getAddress()).map(e -> {
dto.setStreetName(e.getStreet());
return null;
});
return i.getCar();
}).map(i -> {
dto.setCarName(i.getName());
return i.getInsurance();
}).map(i -> {
dto.setInsuranceName(i.getName());
return null;
}).orElse(null);
解决方法
IMO,简单的null检查将使代码更具可读性。
Person person = new Person();
InformationDto dto = new InformationDto();
if (person != null) {
dto.setPersonName(person.getName());
if (person.getAddress() != null) {
dto.setStreetName(person.getAddress().getStreet());
}
if (person.getCar() != null) {
dto.setCarName(person.getCar().getName());
if (person.getCar().getInsurance() != null) {
dto.setInsuranceName(person.getCar().getInsurance().getName());
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。