HOWTO · Java
在 Java 中檢查 Int 是否為空
如何在 Java 中檢查 int 是否為空
本頁內容
本文探討如何透過 Integer 包裝類別檢查 Java 中 int 類型的空值,並討論在處理可空整數時保持程式碼可靠、健壯的最佳實踐。
在 Java 中 int 可以為空嗎?
首先需要明確一點:int 是基本資料類型。基本類型直接保存其值,因此 int 永遠不可能是 null——它總是保存著某個數字,預設是 0。值的缺失只能用包裝類別 Integer 來表示,它的物件可以為 null。
這就是為什麼檢查很重要。在把 Integer 當作 int 使用之前——例如拆箱做運算或傳給需要 int 的地方時——必須先檢查:把為 null 的 Integer 當作 int 使用會拋出 NullPointerException。如果你需要基本值的包裝形式,可以參閱如何將 int 轉換為 Integer。
檢查 Integer 是否為空
檢查本身就是與 null 的簡單比較。下面的完整範例展示了一個基本 int、一個可空的 Integer,以及實際的檢查:
public class CheckIfIntIsNullExample {
public static void main(String[] args) {
// Part 1: Primitive int
int primitiveInt = 0;
System.out.println("Primitive int value: " + primitiveInt);
// Part 2: Nullable Integer
Integer nullableInt = null;
System.out.println("Nullable Integer value: " + nullableInt);
// Part 3: Checking for null
if (nullableInt != null) {
int intValue = nullableInt.intValue();
System.out.println("Value is: " + intValue);
} else {
System.out.println("Value is null");
}
}
}
輸出:
Primitive int value: 0
Nullable Integer value: null
Value is null
程式碼的第一部分把 primitiveInt 初始化為 0,演示了基本整數的標準用法——它總是保存著一個值。第二部分把 nullableInt 宣告為 Integer 物件並設為 null,這只有包裝類別才能做到。第三部分中,if 陳述式把 nullableInt 與 null 比較:如果不為 null,就用 intValue() 取出 int 值並輸出;否則程式輸出該值為空。
處理可空整數的最佳實踐
一致的空值檢查
在對 Integer 物件執行操作或取出其底層的 int 值之前,檢查它是否為 null,並且始終這樣做。這種做法能最大限度地降低遇到 NullPointerException 的風險,提高程式碼的整體穩定性。
清晰的文檔
記錄可空整數預期出現的位置、應如何處理以及 null 值的含義。清晰的文檔可以防止意外的誤用,並幫助其他開發者理解程式碼的行為。
預設值與初始化
在適當的情況下,為可空整數提供預設值——例如在值缺失時替換一個備用值——使依賴它的操作不會意外失敗。合理的預設值讓程式碼的行為更可預測。
使用 Optional(Java 8 及更高版本)
在 Java 8 及更高版本中,Optional 類別可以在類型本身中表達值可能缺失。Optional<Integer> 提供了顯式處理有值與無值兩種情況的方法,讓程式碼中的意圖表達得更清晰、更簡潔。
異常處理
當值的缺失被視為異常情況時,要有意識地處理它——用清晰的錯誤快速失敗或顯式恢復——而不是讓 NullPointerException 在遠離其成因的地方浮現。健壯的異常處理可以防止程式意外終止。
結論
int 永遠不可能是 null;只有它的包裝類別 Integer 可以。檢查就是與 null 的簡單比較;一致地執行這一檢查——再加上清晰的文檔、合理的預設值以及在合適場景使用 Optional——就能避免 NullPointerException,保持 Java 程式碼的可靠與健壯。