java 代码精简之利用 Optional
在 Java 8 里,引入了一个 Optional 类,该类是一个可以为 null 的容器对象。
7.1.保证值存在
普通:
Integer thisValue;
if (Objects.nonNull(value)) {
thisValue = value;
} else {
thisValue = DEFAULT_VALUE;
}
精简:
Integer thisValue = Optional.ofNullable(value).orElse(DEFAULT_VALUE);
7.2.保证值合法
普通:
Integer thisValue;
if (Objects.nonNull(value) && value.compareTo(MAX_VALUE) <= 0) {
thisValue = value;
} else {
thisValue = MAX_VALUE;
}
精简:
Integer thisValue = Optional.ofNullable(value)
.filter(tempValue -> tempValue.compareTo(MAX_VALUE) <= 0).orElse(MAX_VALUE);
7.3.避免空判断
普通:
String zipcode = null;
if (Objects.nonNull(user)) {
Address address = user.getAddress();
if (Objects.nonNull(address)) {
Country country = address.getCountry();
if (Objects.nonNull(country)) {
zipcode = country.getZipcode();
}
}
}
精简:
String zipcode = Optional.ofNullable(user).map(User::getAddress)
.map(Address::getCountry).map(Country::getZipcode).orElse(null);
想了解更多IT软件学习方面的内容,欢迎到西安鸥鹏进行咨询,是专业的IT项目管理、项目开发、IT人力资源顾问公司。OPENLAB为几乎所有相关知名IT企业CISCO,MICROSOFT,REDHAT,华为,ORACLE的授权培训机构,同时是PROMETRIC和VUE授权的相关考试中心,可以组织学员参加认证考试并获得IT资格认证。为您提供最好的优质服务。