我想編譯將地址簿條目添加到我的數組中的代碼。我有大部分驅動程序,它接受名字和姓氏的輸入,然後添加它們,並搜索特定的值。我的問題是添加一個新條目的代碼 - 我試圖添加多個字符串作爲通訊錄中的一個條目,然後調用addEntry,但我得到以下錯誤...添加條目到Arraylist
C:\ Users \ Scherpich \ Desktop \ Jim School \ CS 219編程基礎\程序\ ScherpichJamesTest2.java:17:錯誤:構造函數類SJAddressBook中的SJAddressBook不能應用於給定的類型; aBook.add(new SJAddressBook()); ^ 要求:字符串,字符串 發現:沒有參數 原因:實際的和正式的參數列表的長度不同
C:\用戶\ Scherpich \桌面\吉姆學校\ CS 219編程基礎知識\程序\ ScherpichJamesTest2.java :18:錯誤:找不到符號 aBook.get(count).addEntry(); ^ 符號:方法的addEntry() 位置:類SJAddressBook
C:\用戶\ Scherpich \桌面\吉姆學校\ CS 219個編程基礎知識\程序\ ScherpichJamesTest2.java:24:錯誤:無法找到符號 INT foundIndex = abook.search(SJ); ^ 符號:變量SJ 位置:類ScherpichJamesTest2
C:\用戶\ Scherpich \桌面\吉姆學校\ CS 219個編程基礎知識\程序\ ScherpichJamesTest2.java:24:錯誤:無法找到符號 INT foundIndex = abook.search(SJ); ^ 符號:變量ABOOK 位置:類ScherpichJamesTest2
C:\用戶\ Scherpich \桌面\吉姆學校\ CS 219編程基礎知識\程序\ ScherpichJamesTest2.java:30:錯誤:無法找到符號 SJ.get (foundIndex)。顯示(); ^ 符號:變量SJ 位置:class ScherpichJamesTest2 。\ SJAddressBook.java:27:錯誤:缺少方法體,或聲明爲抽象 public static int search(ArrayListaBook); ^ 。\ SJAddressBook.java:34:error:can not find symbol int choice = integer.parseInt(entry.nextLine()); ^ 符號:可變整數 位置:類SJAddressBook \ SJAddressBook.java:38:錯誤:找不到(SJAddressBook地址:ABOOK)符號 ^ 符號:可變ABOOK 位置:類SJAddressBook \ SJAddressBook .java:44:error:return outside方法 return aBook.IndexOf(Address); ^ \ SJAddressBook.java:47:錯誤:找不到符號 如果(value.equalisIgnoreCase(Address.LAST)) ^ 符號:方法equalisIgnoreCase(字符串) 位置:String類型 的變量值\ SJAddressBook .java:48:error:return outside方法 return aBook.IndexOf(Address); ^ 。\ SJAddressBook。java:53:錯誤:返回外部方法 返回-1; ^ 12錯誤
這裏是我的主要方法類
{
public static void main(String[] args)
{
ArrayList<SJAddressBook> aBook = new ArrayList<SJAddressBook>();
for (int count =0;count <3;count ++)
{
aBook.add(new SJAddressBook());
aBook.get(count).addEntry();
System.out.println();
}
int foundIndex = abook.search(SJ);
System.out.println();
if (foundIndex > -1)
SJ.get(foundIndex).display();
else
System.out.println("No Entry Found");
}
}
//我的驅動程序類
public class SJAddressBook //start class definition
{
static String FIRST;
private String LAST;
public SJAddressBook(String first, String last)
{
Scanner entry = new Scanner (System.in);
System.out.print("Please Enter First Name: ");
FIRST = entry.nextLine();
System.out.print("Please Enter Last Name: ");
LAST = entry.nextLine();
}
public static int search(ArrayList<SJAddressBook>aBook);
{
Scanner entry = new Scanner (System.in);
System.out.println("1. First Name");
System.out.println("2. Last Name");
System.out.print("Please Enter Field to Search: ");
int choice=integer.parseInt(entry.nextLine());
System.out.println("Please enter value to search for: ");
String value=entry.nextLine();
for(SJAddressBook Address: aBook)
{
switch(choice)
{
case 1:
if(value.equalsIgnoreCase(Address.FIRST))
return aBook.IndexOf(Address);
break;
case 2:
if(value.equalisIgnoreCase(Address.LAST))
return aBook.IndexOf(Address);
break;
}
}
return -1;
}
public void display()
{
System.out.println("First Name: "+this.FIRST);
System.out.println("Last Name: "+this.LAST);
}
}
爲了解決第一個錯誤:在您的SJAddressBook類添加默認的構造函數,如果你有參數的構造函數,然後Java不隱式或在你的主要方法提供了兩個字符串參數在執行ABOOK創建一個默認。添加(新的SJAddressBook()); – shailbenq
我會試試這個! – user3313912
如何修復在驅動程序類中有2個參數的空構造函數? – user3313912