简体   繁体   English

将 Integer(可能为 null)转换为 Java 中的 int 的更好方法?

[英]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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM