美文网首页
java中Optional的正确使用方法

java中Optional的正确使用方法

作者: 昆猪IMK | 来源:发表于2019-11-18 15:02 被阅读0次

    java8 引入了Optional类,让我们可以以一种更加优雅的方式处理代码里的各种null值,但如果只是用Optional的isPresent()方法来代替原来代码中的null判断的话,其实和原来的写法也没有太大的区别,代码依然臃肿,也依然不利于阅读。
    实际上除了isPresent()之外,optional提供的map(), orElse(), orElseGet()等方法才是Optinal真正的强大之处,下面的代码组合使用了map()和orElse()方法来处理null值,看下是不是比用各种if-else来判断null值优雅多了呢。

    import java.util.Optional;
    
    public class TestOptional {
    
        public static void main(String[] args) {
            Entityt1 e1 = new Entityt1();
            //        Entityt1 e1 = null;
    
            //e1.getS1()为null
            System.out.println(e1.getS1());
    
            //option - 对于null值判断的优雅写法(将原本需要复杂if-else的判断写成一句)(若e1为null也会打印"empty val")
            Optional<Entityt1> op1 = Optional.ofNullable(e1);
            System.out.println(op1.map(op2 -> op2.getS1()).orElse("empty val"));
    
            //以下语句与上面用optional的语句等效
            if (e1 != null) {
                if (e1.getS1() != null) {
                    System.out.println(e1.getS1());
                } else {
                    System.out.println("empty val");
                }
            } else {
                System.out.println("empty val");
            }
        }
    }
    
    class Entityt1{
    
        private String s1;
    
        private String s2;
    
        public String getS1() {
            return s1;
        }
    
        public void setS1(String s1) {
            this.s1 = s1;
        }
    
        public String getS2() {
            return s2;
        }
    
        public void setS2(String s2) {
            this.s2 = s2;
        }
    }
    

    相关文章

      网友评论

          本文标题:java中Optional的正确使用方法

          本文链接:https://www.haomeiwen.com/subject/akcbictx.html