java8 Optional正确使用姿势
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8 Optional正确使用姿势相关的知识,希望对你有一定的参考价值。
import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import org.apache.commons.lang3.StringUtils; import java.util.Optional; @Data @EqualsAndHashCode(exclude={"self"}) @ToString(callSuper=true, exclude="self") public class PersonDto { private Integer id; private String name; private String password; private Double self; public boolean validateName1() { return StringUtils.equals("hjz", name); } public static boolean validateName2(String name) { return StringUtils.equals("hjz", name); } public static void main(String[] args) { PersonDto personDto = new PersonDto(); personDto.setName("hjz"); // String name = Optional.ofNullable(personDto) // .map(obj -> obj.getName()) // .filter(StringUtils::isNotEmpty) // .orElseThrow(()->new IllegalArgumentException("The value of param personDto isn‘t available.")); // String name = Optional.ofNullable(personDto) // .map(obj -> obj.getName()) // .filter(PersonDto::validateName2) // .orElseThrow(()->new IllegalArgumentException("The value of param personDto isn‘t available.")); String name = Optional.ofNullable(personDto) .filter(PersonDto::validateName1) .map(obj -> obj.getName()) .orElseThrow(()->new IllegalArgumentException("The value of param personDto isn‘t available.")); System.out.println(name); } }
!--?xml>
以上是关于java8 Optional正确使用姿势的主要内容,如果未能解决你的问题,请参考以下文章
Java8新特性 Optional的正确使用姿势,真的不来稍微了解一下吗?
还看不懂同事的代码?超强的 Stream 流操作姿势还不学习一下