[英]A better way to convert Integer (may be null) to int in Java?
An Integer
can be null
.一个
Integer
可以是null
。 I convert an Integer
to an int
by:我通过以下方式将
Integer
转换为int
:
Integer integer = null;
int i;
try {
i = integer.intValue();
}
catch (NullPointerException e) {
i = -1;
}
Is there a better way?有没有更好的办法?
避免异常总是更好。
int i = integer != null ? integer.intValue() : -1;
If you already have guava
in your classpath, then I like the answer provided by michaelgulak . 如果你已经在类路径中有
guava
,那么我喜欢michaelgulak提供的答案 。
Integer integer = null;
int i = MoreObjects.firstNonNull(integer, -1);
Java 9 introduce Objects.requireNonNullElse , alternative solution in Java Vanilla (without external library): Java 9 介绍Objects.requireNonNullElse ,Java Vanilla 中的替代解决方案(无外部库):
Integer integerValue = null;
int intValue = Objects.requireNonNullElse(integerValue, 0);
使用Java8,以下工作也是如此:
Optional.ofNullable(integer).orElse(-1)
Apache Commons Lang 3 Apache Commons Lang 3
ObjectUtils.firstNonNull(T...)
Java 8 Stream Java 8 Stream
Stream.of(T...).filter(Objects::nonNull).findFirst().orElse(null)
Taken From: https://stackoverflow.com/a/18741740/6620565 取自: https : //stackoverflow.com/a/18741740/6620565
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.