這裏有一個構造函數,用於檢查狀態輸入是否有效。使用一個類來處理錯誤的輸入
public Electronics(String name, double price, int quantity, double weight, boolean frag, String s)
{
super("Electronics",name,price,quantity,weight);
fragile=frag;
s=s.toUpperCase();
if(checkState(s)==true)
{
state=s;
}
else
{
out.println("ERROR - not a valid state abbreviation");
}
}
但是在我main()
,我有這樣的事情:
public List<Item> shoppingCart = new ArrayList<Item>();
temp= new Electronics(name,price,quantity,weight, fragile, state);
...
shoppingCart.add(temp);
所以,即使國家縮寫是無效的,(它只是打印出該狀態是無效的),但對象仍然添加到ArrayList。如果狀態縮寫不正確,我能做些什麼來阻止添加?
如果是無效狀態縮寫你不應該只是打印一個錯誤消息,而是拋出一個IllegalArgumentException?這樣你可以防止添加到列表中,也可以防止在沒有狀態的情況下創建對象 – pabrantes