java.util.OptionalInt
OptionalInt是一个容器类,它包含空或不空的int值。
OptionalInt是Optional类的一个原始int版本,而Optional是Integer对象的一个Optional类。
isPresent()方法返回true。getAsInt()方法返回整数值。
创建空的OptionalInt实例
empty()方法创建OptionalInt实例。isPresent()方法返回false,false意味着没有值。
OptionalInt emptyOptionalInt = OptionalInt.empty();
创建非空的OptionalInt实例。
OptionalInt.of(int)方法创建OptionalInt实例,其中有int值。
OptionalInt valueOptionalInt = OptionalInt.of(5);
ifPresentOrElse()方法示例
ifPresentOrElse方法检查,如果值存在,则对该值应用消费者,否则为空值
OptionalLong optionalLongvalue = OptionalLong.of(15);
optionalIntvalue.ifPresentOrElse((value) -> {
System.out.println("data exists: " + value);
}, () -> {
System.out.println("Not exists");
});
可选Int的例子
这是一个使用OptionalInt的Lambda表达式和实用方法的例子,如:empty(),of(int),ifPresentOrElse()
OptionalInt emptyOptionalInt = OptionalInt.empty();
OptionalInt optionalIntvalue = OptionalInt.of(5);
optionalIntvalue.ifPresentOrElse((value) -> {
System.out.println("data exists: " + value);
}, () -> {
System.out.println("Not exists");
});
emptyOptionalInt.ifPresentOrElse((value) -> {
System.out.println("data exists: " + value);
}, () -> {
System.out.println("Not exists");
});
data exists: 5
Not exists
在java8中把OptionalInt转换为Int
OptionInt.getAsInt()方法返回原始的int值
int intValue =0;
OptionalInt optionalInt = OptionalInt.of(3);
if(optionalInt.isPresent()) {
intValue=optionalInt.getAsInt();
}
System.out.println(intValue); // output 3
在java8中把Int转换为OptionalInt
OptionalInt.of()方法用于创建具有非空int值的OptionalInt。
语法
public static OptionalInt of(int value)
这个方法接收int Value作为输入并返回OptionalInt对象。
int intValue = 17;
OptionalInt optionInt = OptionalInt.of(intValue);
System.out.println(optionInt.isPresent()); // returns true
在java8中OptionalInt和Optional的区别?
Optional.get() 返回Integer对象
OptionalInt.getAsInt() 方法返回int primitivevalue
IntStream和OptionalInt对象的int值可能会导致nullpointerexception
Optional和Stream为int值添加了额外的包装以避免null异常。
方法
OptionalInt提供了许多处理可用和不可用的工具。
方法说明:-说明
空():
创建空的OptionalInt实例
getAsInt():
返回int值,如果值存在于OptionalInt中,否则出现NoSuchElementException。
ifPresent(IntegerConsumer consumer):
执行IntegerConsumer,如果值存在于OptionalInt中,否则不做任何操作
isPresent():
如果值存在于OptionalInt中,则返回true,否则返回false
of(Integer integer):
创建非空值的OptionalInt,如果传入空值,则抛出NullPointerException,OptionalInt对象将不会被初始化。
orElse(int other):
如果在OptionalInt中没有显示值,返回默认值。
orElseGet(IntegerSupplier other):
如果值在OptionalInt中出现,则返回值,否则供应商被调用,结果将被返回。
orElseThrow(Supplier exceptionSupplier):
如果值以OptionalInt的形式出现,则返回值,否则供应商被调用并抛出一个错误。