欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java中的Optional——不看吃亏

程序员文章站 2022-06-07 12:37:11
...
package com.hash.Optional;

import com.alibaba.fastjson.JSONObject;

import java.util.Optional;

/**
 * @Auther: King
 * @Date: 2021/8/23 - 08 - 23 - 11:06
 * @Description: com.hash.Optional
 * @version: 1.0
 */
public class OptionalObject {
    public static void main(String[] args) {
        //of方法
        User user = null;
        //Optional<User> optionalUser = Optional.of(user);

        //ofNullable方法
        //想要获取对象就用get()
        User user1 = new User("xiexing");
        Optional<User> optionalUser1 = Optional.ofNullable(user1);
        System.out.println("user"+ JSONObject.toJSONString(optionalUser1.get()));

        //ifPresent方法
        Optional.ofNullable(user1).ifPresent(user2 -> {
            System.out.println(user2.getName());
        });

        //orElse方法
        // 就是user对象如果是空的话就新建一个对象,如果不是空的就直接用user对象
        User user2 = Optional.ofNullable(user).orElse(new User("123"));
        System.out.println(JSONObject.toJSONString(user2));

        // map方法
        // 拿到对象里面的属性
        String king = Optional.ofNullable(user1).map(User::getName).orElse("king");
        System.out.println(king);

        // filter方法
        // 判断是否相等,相等的就放进集合,如果没有相等的值,集合就是null
        Optional<User> optionalUser = Optional.ofNullable(user1).filter(user3 -> user3.getName().equals("xiexin"));
        System.out.println(JSONObject.toJSONString(optionalUser));
    }
}