[英]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.