簡體   English   中英

使用可變數量參數的方法

[英]using method that take variable number of parameters

我正在嘗試根據參數數量使用不同的構造函數來構建類(PhoneBook)的新對象的方法,但它給出了錯誤

(線程“主”中的異常java.lang.ArrayIndexOutOfBoundsException:0)

public static PhoneBook createObjects(String fName,String lName,String num,String...optional)
{
    n++;    
    if (optional[0]==null)
        ArrayOfObjects[n]=new PhoneBook(fName,lName,num);
    else if (optional[1]==null)
        ArrayOfObjects[n]=new PhoneBook(fName,lName,num,optional[0]);

    return ArrayOfObjects[n];   
}

您應該檢查optional.length以確定是否存在optional參數,而不是檢查optional[0] == null

對於optional[1]

而不是在此處檢查optional[0]optional[1] ,而是應檢查optional.length 另外,請記住, optional本身很可能為null ,因此類似:

if(optional != null) {
    if(optional.length > 0) {
        // I now know that optional has at least one element in it, and optional[0] should be valid, though I don't know that it is non-null.
        if(optional.length > 1) {
            // I now know that optional[1] is valid, though I do not know it is non-null.
        }
    }
}

如果您需要非空值:

if(optional.length > 0 && optional[0] != null)

第二部分, optional[0] != null只有在第一部分的評估結果為true時才被調用。

暫無
暫無

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

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