Optional

发布时间 2023-08-16 00:00:48作者: ZyaOo

Optional

1. 概述

大量的业务代码中有很多关于非空的判断,显得代码臃肿不堪,且程序员经常忘记这一操作。使用Optional可以避免空指针异常。并且很多函数式编程的API中也用到了Optional。

2. 使用

package org.example;

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Optional<User> userOptional = User.getUserOptional();// 获取Optional封装的User
        userOptional.ifPresent(user -> System.out.println(user.age));// 消费(如果User是Null 不会执行)
    }
}

class User {
    public User(int age, List<String> name) {
        this.age = age;
        this.name = name;
    }

    public int age;
    public List<String> name;
    
    public static Optional<User> getUserOptional(){
        List<String> list = new ArrayList<>();
        list.add("张三");
        list.add("mike");
        User user = new User(1, list);
        return Optional.ofNullable(user);// 封装User到Optional里
    }
}