Java8新特性Optional

Optional类的方法

image

1、empty

private static void createNullOptional() {
        // 创建一个空的Optional实例
        // 方式一
        Optional<Object> empty = Optional.empty();
        System.out.println("empty = " + empty);
        // 方式二
        Optional<Object> empty2 = Optional.ofNullable(null);
        System.out.println("empty2 = " + empty2);
    }

2、of

 private static void of() {
	 Optional<String> qiuqiu = Optional.of("qiuqiu");
	 System.out.println("qiuqiu = " + qiuqiu);

	 // 传入null将会报错
	 Optional<Object> optional = Optional.of(null);
	 System.out.println("optional = " + optional);
 }

3、ofNullable

Optional<Object> empty2 = Optional.ofNullable(null);
System.out.println("empty2 = " + empty2);

4、filter

 private static void filter() {
        // Optional<String> optional  =  Optional.of("hello");
        Optional<String> optional  =  Optional.empty();
        Optional<String> result = optional.filter(item -> {
            if (item.contains("o")) {
                return true;
            }
            return false;
        });
        // System.out.println("result = " + result.get());
        System.out.println("result = " + result);
    }

5、map

private static void map() {
        User user = new User("qiuqiu", 22);
        Optional<User> qiuqiu = Optional.of(user);
        Optional<User> optional = qiuqiu.map(item -> {
            String name = item.getName();
            item.setName(name.toUpperCase());
            return item;
        });
        System.out.println("optional.get() = " + optional.get());
    }

6、get

private static void get() {
        Optional<Integer> optional = Optional.of(520);
        Integer integer = optional.get();
        System.out.println("integer = " + integer);
        Optional<Object> empty = Optional.empty();
        // 报错  java.util.NoSuchElementException
        System.out.println("empty.get() = " + empty.get());
    }

7、orElse

 private static void orElse() {
        Optional<Integer> optional = Optional.of(520);
        Integer result = optional.orElse(1314);
        System.out.println("result = " + result);
        //  为空则返回默认值
        Optional<Object> empty = Optional.empty();
        Object orElse = empty.orElse(1314);
        System.out.println("orElse = " + orElse);
    }

8、orElseGet

private static void orElseGet() {
        Optional<Integer> optional = Optional.of(520);
        Integer result = optional.orElseGet(() -> 1214);
        System.out.println("result = " + result);
        //  为空则返回默认值 Supplier  get()
        Optional<Object> empty = Optional.empty();
        Object orElseGet = empty.orElseGet(() -> 1235);
        System.out.println("orElseGet = " + orElseGet);
    }

9、orElseThrow

private static void orElseThrow() {
        // orElseThrow() 无参
       /* Optional<Integer> optional = Optional.of(520);
        Integer integer = optional.orElseThrow();
        System.out.println("integer = " + integer);

        Optional<Object> empty = Optional.empty();
        Object orElseThrow = empty.orElseThrow();
        System.out.println("orElseThrow = " + orElseThrow);*/

        // orElseThrow() 有参
        Optional<Integer> optional2 = Optional.of(520);
        Integer integer2 = optional2.orElseThrow(() -> {
            throw new RuntimeException("出错啦!!!");
        });
        System.out.println("integer2 = " + integer2);

        Optional<Object> empty2 = Optional.empty();
        Object orElseThrow2 = empty2.orElseThrow(() -> {
            throw new RuntimeException("出错啦!!!");
        });
        System.out.println("orElseThrow2 = " + orElseThrow2);
    }

10、ifPersent

private static void ifPersent() {
        Optional<Integer> optional = Optional.of(520);
        //  值存在就执行Consumer
        optional.ifPresent(item -> {
            System.out.println("item = " + item);
        });
        //  值不存在就什么都不做
        Optional<Object> empty = Optional.empty();
        empty.ifPresent(item -> {
            System.out.println("什么都不做!!!");
        });
    }

11、isPersent

 public static void main(String[] args) {
        Optional<Integer> optional = Optional.of(520);
        //  值存在就返回true
        boolean isPresent = optional.isPresent();
        System.out.println("isPresent = " + isPresent);
        // 值不存在就返回false
        Optional<Object> empty = Optional.empty();
        System.out.println("empty.isPresent() = " + empty.isPresent());
    }
posted @   我也有梦想呀  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示