我是Java
的新手,我使用的是BlueJ
。我不斷收到錯誤:類中的構造函數不能應用於給定的類型。希望尋求幫助
constructor ItemNotFound in class ItemNotFound cannot be applied to given types;
required: int
found: no arguments
reason: actual and formal arguments lists differ in length
我相當困惑,進而不知道如何解決這個問題。希望有人能幫助我。先謝謝你。
這裏是我的類目錄:
public class Catalog {
private Item[] list;
private int size;
// Construct an empty catalog with the specified capacity.
public Catalog(int max) {
list = new Item[max];
size = 0;
}
// Insert a new item into the catalog.
// Throw a CatalogFull exception if the catalog is full.
public void insert(Item obj) throws CatalogFull {
if (list.length == size) {
throw new CatalogFull();
}
list[size] = obj;
++size;
}
// Search the catalog for the item whose item number
// is the parameter id. Return the matching object
// if the search succeeds. Throw an ItemNotFound
// exception if the search fails.
public Item find(int id) throws ItemNotFound {
for (int pos = 0; pos < size; ++pos){
if (id == list[pos].getItemNumber()){
return list[pos];
}
else {
throw new ItemNotFound(); //"new ItemNotFound" is the error
}
}
}
}
以供參考,在這裏是爲class ItemNotFound
的代碼,以及:您對您的ItemNotFound
類提供自定義構造函數
// This exception is thrown when searching for an item
// that is not in the catalog.
public class ItemNotFound extends Exception {
public ItemNotFound(int id) {
super(String.format("Item %d was not found.", id));
}
}
請再來。我不明白這與這個問題有什麼關係。 – SudoRahul
對不起我的錯誤,我以爲你正在傳遞一個int參數給構造函數:super(String.format(「Item%d was not found。」,id));這是目錄類中存在的。其實,throe新的Item()是無效的,因爲你已經定義了一個顯式的構造函數項(int id)...... Pleas忽略了我以前的答案。 –
編輯您的答案並將其發佈到那裏。不在評論中。 – SudoRahul