我想創建一個遞歸方法(函數)。此方法處理另一個類的對象,其中每個類的實例都有3個Integer字段。 (整數var1,var2,var3;)。我想知道是否有「變量可能未被初始化」的異常或錯誤,所以在這種情況下,該方法將停止。起初,我認爲它會拋出nullPointerException,因爲它是一個對象,但解包自動工作。有沒有解決方法? (我知道這是一個編譯錯誤...)Java:變量的捕捉異常可能沒有被初始化
0
A
回答
0
一種方法可能是在使用它之前檢查它是否是類類型的實例。考慮以下幾點:
Integer x = null;
Integer y = new Integer(0);
if(x instanceof Integer)
System.out.println("x is initialized.");
else
System.out.println("x is NOT initialized.");
if(y instanceof Integer)
System.out.println("y is initialized.");
else
System.out.println("y is NOT initialized.");
輸出將導致:
X未初始化。
y被初始化。
0
你可以在該方法的外部範圍內用dummy/temporary值初始化所有三個變量,然後用任何傳入你方法的值來覆蓋它們。例如:
Integer myVar1 = 0;
Integer myVar2 = 0;
Integer myVar3 = 0;
public static void yourMethod(Integer var1, Integer var2, Integer var3) {
try {
myVar1 = var1;
myVar2 = var2;
myVar3 = var3;
... your code
catch(NullPointerException ex) {
// handling error code
}
}
相關問題
- 1. Java變量可能未被初始化
- 2. Java變量可能沒有被初始化?
- 3. 變量potas可能沒有初始化
- 4. Android的 - 局部變量TST可能沒有被初始化
- 5. 本地變量可能沒有被初始化的問題?
- 6. 變量可能未被初始化?
- 7. 變量可能未被初始化
- 8. 一些變量可能沒有被初始化?爲什麼?
- 9. 變量可能沒有被初始化(邊緣權重圖)
- 10. 呼叫變量,但它可能沒有被初始化
- 11. 變量「studentNumber」和「passWord」可能沒有被初始化?
- 12. 局部變量GCD可能沒有被初始化
- 13. {DCC Warning} W1036變量'$ frame'可能沒有被初始化?
- 14. 局部變量n可能沒有被初始化
- 15. 錯誤:局部變量罐可能沒有被初始化
- 16. Java - 變量可能未初始化
- 17. 爲什麼Java說我的變量在初始化時沒有被初始化?
- 18. Valriable可能沒有被初始化?
- 19. 有沒有解決局部變量的方式可能沒有被初始化
- 20. Log4j沒有捕捉異常
- 21. PHPUnit沒有捕捉異常
- 22. java捕捉異常
- 23. Java中的變量可能未被初始化錯誤
- 24. 無法編譯Java錯誤變量可能未被初始化
- 25. Java錯誤變量可能未被初始化
- 26. 如何捕捉異常在靜態初始化塊拋出
- 27. 捕捉異常而沒有捕獲塊
- 28. 捕獲異常而初始化靜態最終變量
- 29. 是否有可能開始..救援不捕捉異常?
- 30. 初始化向量異常
你的問題沒有意義。字段默認初始化爲空(如果它們是引用類型的話);所以你不應該從你所描述的那裏得到一個編譯錯誤。 (變量可能未被初始化的編譯錯誤只適用於本地變量和最終字段。)你能發佈你的實際代碼嗎? – ruakh
一個簡單的例子: class test { \t public static void main(String args []){ \t \t Integer x; \t \t System.out.println(x); \t \t}} 類測試{ \t公共靜態無效主要(字符串ARGS []){ \t \t整數x = NULL; \t \t System.out.println(x); \t \t}} 輸出1:test.java:5:錯誤:變量x可能尚未初始化 \t \t的System.out.println(X); \t \t^ 1錯誤 輸出2:空 – JAAAY
我覺得他遇到了一個編譯器錯誤,因爲他的傳球在參數(S)沒有初始化,以及他試圖繞過與一個try/catch是編譯器錯誤。 – Jayson