在 Java 中将 Integer(可能为 null)转换为 int 的更好方法?
A better way to convert Integer (may be null) to int in Java?
一个Integer
可以是null
。我通过以下方式将 Integer
转换为 int
:
Integer integer = null;
int i;
try {
i = integer.intValue();
}
catch (NullPointerException e) {
i = -1;
}
有没有更好的方法?
避免异常总是更好。
int i = integer != null ? integer.intValue() : -1;
如果您的类路径中已经有 guava
,那么我喜欢 answer provided by michaelgulak。
Integer integer = null;
int i = MoreObjects.firstNonNull(integer, -1);
Apache 通用语言 3
ObjectUtils.firstNonNull(T...)
Java 8 流
Stream.of(T...).filter(Objects::nonNull).findFirst().orElse(null)
取自:
使用 Java8 也可以实现以下效果:
Optional.ofNullable(integer).orElse(-1)
Java 9 引入Objects.requireNonNullElse,Java Vanilla(无外部库)中的替代解决方案:
Integer integerValue = null;
int intValue = Objects.requireNonNullElse(integerValue, 0);
一个Integer
可以是null
。我通过以下方式将 Integer
转换为 int
:
Integer integer = null;
int i;
try {
i = integer.intValue();
}
catch (NullPointerException e) {
i = -1;
}
有没有更好的方法?
避免异常总是更好。
int i = integer != null ? integer.intValue() : -1;
如果您的类路径中已经有 guava
,那么我喜欢 answer provided by michaelgulak。
Integer integer = null;
int i = MoreObjects.firstNonNull(integer, -1);
Apache 通用语言 3
ObjectUtils.firstNonNull(T...)
Java 8 流
Stream.of(T...).filter(Objects::nonNull).findFirst().orElse(null)
取自:
使用 Java8 也可以实现以下效果:
Optional.ofNullable(integer).orElse(-1)
Java 9 引入Objects.requireNonNullElse,Java Vanilla(无外部库)中的替代解决方案:
Integer integerValue = null;
int intValue = Objects.requireNonNullElse(integerValue, 0);