📌  相关文章
📜  Java中的 OptionalInt orElseGet() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:31:54.785000             🧑  作者: Mango

Java中的 OptionalInt orElseGet() 方法及示例

OptionalInt是Java 8引入的一种Optional类型,用于表示可能存在的int值。OptionalInt中的orElseGet()方法定义为:

public int orElseGet(IntSupplier other)

它接受一个IntSupplier参数,并在OptionalInt为空时返回该函数生成的默认值。如果OptionalInt不为空,该方法返回OptionalInt中包含的值。如果IntSupplier函数抛出了异常,则该异常将被转发给调用方。

下面是orElseGet()方法的示例代码:

OptionalInt optionalInt = OptionalInt.empty();
int result = optionalInt.orElseGet(() -> {
    System.out.println("Generating default value...");
    return 42;
});
System.out.println(result); // 输出:Generating default value... 42

在上面的代码中,我们首先创建一个空的OptionalInt对象。然后调用orElseGet()方法并传入一个IntSupplier函数,它将生成默认值。由于OptionalInt为空,因此orElseGet()方法调用IntSupplier函数,并返回42这个默认值,同时输出“Generating default value...”这个字符串。

如果我们创建包含实际值的OptionalInt对象,则orElseGet()方法将返回该值,而不会调用IntSupplier函数:

OptionalInt optionalInt = OptionalInt.of(123);
int result = optionalInt.orElseGet(() -> {
    System.out.println("Generating default value...");
    return 42;
});
System.out.println(result); // 输出:123

在上面的代码中,我们创建一个包含值123的OptionalInt对象。因为该对象不为空,或ElseGet()方法返回其中的值123,而不会调用IntSupplier函数。

总之,OptionalInt的orElseGet()方法是一个非常有用的工具,用于在OptionalInt为空的情况下提供默认值。它还允许使用可定制的IntSupplier函数来提供该值,从而增加了灵活性和可扩展性。