📅  最后修改于: 2023-12-03 15:31:54.785000             🧑  作者: Mango
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函数来提供该值,从而增加了灵活性和可扩展性。