[英]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
,那么我喜歡michaelgulak提供的答案 。
Integer integer = null;
int i = MoreObjects.firstNonNull(integer, -1);
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
ObjectUtils.firstNonNull(T...)
Java 8 Stream
Stream.of(T...).filter(Objects::nonNull).findFirst().orElse(null)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.