Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java optional

作者:我说°走了就别回来   发布日期:2026-05-15   浏览:90

// Java Optional 示例代码

import java.util.Optional;

public class OptionalExample {
    public static void main(String[] args) {
        // 创建一个包含值的 Optional 实例
        Optional<String> optionalWithValue = Optional.of("Hello, World!");

        // 创建一个空的 Optional 实例
        Optional<String> emptyOptional = Optional.empty();

        // 使用 ifPresent 检查 Optional 是否包含值并执行操作
        optionalWithValue.ifPresent(value -> System.out.println("Value is present: " + value));

        // 使用 orElse 获取值,如果不存在则返回默认值
        String result1 = optionalWithValue.orElse("Default Value");
        System.out.println("Result with value: " + result1);

        // 使用 orElseGet 获取值,如果不存在则通过 Supplier 提供默认值
        String result2 = emptyOptional.orElseGet(() -> "Default Value from Supplier");
        System.out.println("Result with empty optional: " + result2);

        // 使用 orElseThrow 获取值,如果不存在则抛出异常
        try {
            String result3 = emptyOptional.orElseThrow(() -> new RuntimeException("Value not present"));
        } catch (RuntimeException e) {
            System.out.println("Caught exception: " + e.getMessage());
        }

        // 使用 map 和 flatMap 处理 Optional 值
        Optional<String> mappedOptional = optionalWithValue.map(s -> s.toUpperCase());
        mappedOptional.ifPresent(value -> System.out.println("Mapped value: " + value));

        Optional<String> flatMappedOptional = optionalWithValue.flatMap(s -> Optional.of(s.concat(" - Modified")));
        flatMappedOptional.ifPresent(value -> System.out.println("FlatMapped value: " + value));
    }
}

解释说明:

  • Optional.of(T value):创建一个包含非空值的 Optional 实例。
  • Optional.empty():创建一个空的 Optional 实例。
  • ifPresent(Consumer<? super T> consumer):如果 Optional 包含值,则执行给定的操作。
  • orElse(T other):如果 Optional 包含值,则返回该值;否则返回指定的默认值。
  • orElseGet(Supplier<? extends T> supplier):如果 Optional 包含值,则返回该值;否则通过 Supplier 提供默认值。
  • orElseThrow(Supplier<? extends X> exceptionSupplier):如果 Optional 包含值,则返回该值;否则抛出由 Supplier 提供的异常。
  • map(Function<? super T,? extends U> mapper):对 Optional 中的值应用函数,并返回一个新的 Optional 实例。
  • flatMap(Function<? super T,? extends Optional> mapper):对 Optional 中的值应用函数,并返回一个新的 Optional 实例。

上一篇:java 数组

下一篇:java时间戳转换为日期格式

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站