2016-01-21 68 views
-3

錯誤沒有返回所需的語句,因此我需要的thiung輸出一個正整數,將能夠複製一個數組列表,這將是非常感激thatnks通過ArrayList的循環,從而獲得一個項目編號

@Override 
public String getDescription(int itemNumber) { 
    if(isKnownItemNumber(itemNumber) == true) { 
     for (recordItem i : itemList) { 
      if(i.getItemNumber() == itemNumber) { 
       return description; 
      } 
     } 
    } 
    return "does not exist"; 
} 

    @Override 
public void setDescription(String description) { 
    this.description = description; 
} 

這裏是主要的方法與填充的ArrayList:

package Purchase; 
import java.util.*; 

import javax.swing.SwingUtilities; 


public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Runnable() { 


     public void run() { 
      gui.PosGUI.makeAndShowGUI(); 


      Items.newItems.recordItem(01,"banana",1.00,1); 
      , "Mayonnaise", 2.00, 0); 



     } 

    }); 

} 
} 
+4

爲什麼getItemNumber函數採用的參數?它應該返回項目的itemNumber,你傳遞一個參數給函數並返回相同的參數.. \ –

+0

和什麼是recordItem? –

+0

Anoops首先評論標記你的錯誤。嘗試它沒有參數或返回this.itemNumber; Allthough看着你的代碼,你應該只有香蕉在你的Itemlist中。順便說一下,更好地將'isItemNumber(...)== false'更改爲'!isItemNumber(...)'。是否一樣,但看起來更好。 – ctst

回答

1

一個吸氣方法的通常的合同,以不帶參數,並返回詢問場。

您的getItemNumber方法接受一個參數,並作爲結果返回它,這是沒有意義的。

public int getItemNumber(int itemNumber) { 
    return itemNumber; 
} 

一個共同的getter替換此方法:

public int getItemNumber() { 
     return itemNumber; 
    } 

而且你isKnownItemNumber方法變爲:

public boolean isKnownItemNumber(int itemNumber) { 

    //assert itemNumber >= 0 : "Item Number must be greater than or equal to 0"; 
    for (recordItem i : itemList) { 
     if (i.getItemNumber() == itemNumber) { 
      return true; 
     } 

    } 
    return false; 
} 
+0

好吧我做了這些改變(上面編輯),但現在它只是返回'不存在'。 – codingmachine

+0

這不能是完整的錯誤信息,什麼不存在? – Berger

+0

在getDescription中,如果它找到與它返回的數字「不存在」的項目 – codingmachine

0

有可能是在你的記錄方法的另一個錯誤。您在此設置參數,而不是您創建的新項目。試試這個:

@Override 
public void recordItem(int itemNumber, String description, double unitPrice, int sort) { 

    if ((isKnownItemNumber(itemNumber) == false) && (unitPrice > 0) && (sort == 0 || sort == 1)) { 
     Items theItems = new Items(); 
     theItems.itemNumber = itemNumber; 
     theItems.description = description; 
     theItems.unitPrice = unitPrice; 
     theItems.sort = sort; 
     itemList.add(theItems); 
    } 

} 

另一個錯誤:在return i.description;代替return description;

public String getDescription(int itemNumber) { 
    if(isKnownItemNumber(itemNumber) == true) { 
     for (recordItem i : itemList) { 
      if(i.getItemNumber() == itemNumber) { 
       return i.getDescription(); 
      } 
     } 
    } 
    return "does not exist"; 
} 

public String getDescription(){ 
    return description; 
} 
+0

由於某種原因輸出null – codingmachine

+0

是的,你應該返回i.description。 :-)。否則,你返回靜態Item的描述,它是null。看編輯。 – ctst

+0

它不會允許我做i.description,但允許我做i.getdescription但仍然返回'不存在' – codingmachine

相關問題