• java如何优雅的避免npe判定


    optional小结

    java8使用Optional实现优美的npe判断

    1、optional是那种初始化方法

    //空的optional对象
    Optional<String> empty = Optional.empty();
    //不为null的optional对象 Optional
    <String> str = Optional.of("hello world");
    //可以为null的optional对象 Optional
    <String> nullable = Optional.ofNullable(null);

    2、使用optional.orElse可以实现兜底值

    KeyValue kv = new KeyValue("keyi","hahha");
    Optional<KeyValue> kvOption = Optional.ofNullable(kv);
    Optional<String> key = kvOption.map(KeyValue::getKey);
    System.out.println(key.orElse("123"));

    如果kv == null ---> key.orElse("123") == "123"

    如果kv != null ---> key.orElse("123") == "keyi"

    2.1使用orElseGet接收实现Supplier接口的方法

    KeyValue kv = null;
    Optional<KeyValue> kvOption = Optional.ofNullable(kv);
    Optional<String> key = kvOption.map(KeyValue::getKey);
    System.out.println(key.orElseGet((Supplier) () -> "fuck"));

    这个时候就会输出一个fuck

    2.2使用orElseThrow抛出异常

    KeyValue kv = null;
    Optional<KeyValue> kvOption = Optional.ofNullable(kv);
    Optional<String> key = kvOption.map(KeyValue::getKey);
    System.out.println(key.orElseThrow((Supplier) () -> {
                throw new IllegalArgumentException("KeyValue not null");
            }));

    抛出:

    2.3使用ifPresent,可以接收一个Consumer的接口

    2.4 简化if-else

  • 相关阅读:
    Servlet获取URL地址
    js实现浏览器通知功能
    利用Hibernate监听器实现用户操作日志
    XMLHttpRequest上传文件实现进度条
    事务配置中的一些要点
    Spring事务配置的五种方式
    基于注解的Spring AOP的配置和使用
    @ResponseBody注解与JSON
    springMVC获取request和response
    Highcharts属性介绍
  • 原文地址:https://www.cnblogs.com/zhangchiblog/p/11722720.html
Copyright © 2020-2023  润新知