zoukankan      html  css  js  c++  java
  • java8 Optional正确使用姿势

    Java 8 如何正确使用 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);
        }
    }
  • 相关阅读:
    python list介绍
    python unittest模块
    python 贪婪算法
    python 动态规划:背包问题
    汇编语言 基础知识(王爽)
    python 迪克斯特拉(Dijkstra)
    python 广度优先查找 (最短路径)
    Python 快速排序
    python 分而治之 找零数量 最小组合
    移动端的头部标签和 meta
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/7299572.html
Copyright © 2011-2022 走看看