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);
        }
    }
  • 相关阅读:
    eclipse安装Genymotion插件
    [Eclipse插件] 安装和使用JD-Eclipse插件
    [Eclipse插件] Eclipse中如何安装和使用GrepCode插件
    [Android Studio] Android Studio如何删除module(转载)
    前端html基本标签
    python实现简单FTP
    文件的md5计算
    suprocess模块
    几个小例子
    configparser模块
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/7299572.html
Copyright © 2011-2022 走看看