簡體   English   中英

當方法定義為 int 數據類型時,如何在 Java 中返回 null?

[英]How can I return null in Java when the method is defined as int data type?

我一直在做一個代碼,它強制使用數據類型不能是無效的,我不需要返回任何東西。

在 Java 中, null只是引用類型的有效值。 它不能表示原始類型,例如int 以下是一些可供考慮的替代方案:

  1. 如果您使用的是 Java 8 或更高版本,並且能夠更改方法的返回類型,則可以使用OptionalInt類型來表示可能存在或不存在的int值。 在這種情況下,如果沒有要返回的int值,您將返回OptionalInt.empty() ,而OptionalInt.of(x)返回int x 請注意,調用者需要使用 class 上可用的其他方法之一來解開int值(如果存在)。 這種方法通常是新代碼的首選,因為它使意圖和用法非常清楚。
  2. 如果您使用的是較舊的 Java 版本,另一種可能性是將返回類型更改為Integer 這是一個包裝器null用於允許返回 null 的int值。 此外,當值不是null時,Java 的自動拆箱規則允許它在需要int值的上下文中使用。 但是,如果將null值拆箱為int值,則會導致NullPointerException ,因此在執行可能導致拆箱的操作之前檢查null非常重要。
  3. 如果需要使用int返回類型,通常使用一個哨兵值來表示異常返回。 例如,如果該方法的正常返回值都是非負整數,則可以使用諸如-1之類的值來表示不存在的返回值。 這通常用於較舊的 JDK 方法,例如String.indexOf()
  4. 在某些情況下,當無法返回有效值時拋出Exception是有意義的。 僅在真正異常的情況下使用這種方法是一個好主意,因為拋出異常的運行時成本遠高於正常的方法返回,並且控制流會使代碼更難理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM