嘿,我想重提一下我的Java知识,因为我有一段时间没有用Java编写代码了。我正在这个有三个班级的商店项目中工作。 1.产品2.InventoryItem和3.Store
Product类的名称需要一个String,而成本则需要一个double。有用于设置和检索数据的访问器和更改器方法。
public class Product {
//fields
private String productName;
private double cost;
/**
* Contructor
*
* @param productName
* @param cost
*/
public Product(String productName, double cost){
this.productName = productName;
this.cost = cost;
}
...
InventoryItem类在数量上与产品信息一起添加。这对于使用Store类的原因将很清楚。 我想在构造函数中传递一个新的Product Object作为参数,以便稍后将所有信息添加到ArrayList中。如上所述,我已经创建了用于获取名称,成本和数量的set和get方法。
public class InventoryItem {
//fields
private Product productObject;
private int quantity;
/**
* Constructor
*
* @param quantity
*/
public InventoryItem(new Product, int quantity) {
this.quantity = quantity;
}
/**
* Method to set new name for product in inventory
*
* @param newProductName
*/
public void setProductName(String newProductName) {
productObject.setProductName(newProductName);
}
...
我还想知道一旦弄清楚如何将Object作为参数传递,我将如何使用Products方法。
当尝试使用InventotyItems预先填充ArrayList时,我开始出现错误。这是在我的Store类中完成的。
import java.util.ArrayList;
public class Store {
//fields
private String storeName;
private String location;
private ArrayList<InventoryItem> itemList;
/**
* Constructor
*/
public Store(String storeName, String location){
this.storeName = storeName;
this.location = location;
itemList = new ArrayList<>();
}
/**
* Method to prepopulate a list of items the store will be selling
*/
private void setItemList(){
itemList.add(new InventoryItem(new Product("Bananas", 1.50)20));
itemList.add(new InventoryItem(new Product("Canned Beans", 2.00)15));
itemList.add(new InventoryItem(new Product("Easy-Mac", 2.50)15));
itemList.add(new InventoryItem(new Product("Oranges", .50)25));
itemList.add(new InventoryItem(new Product("Cereal", 3.00)10):);
itemList.add(new InventoryItem(new Product("Milk", 4.00)10));
}
}
然后在InventoryItem中更改我的参数
itemList.add(newInventoryItem("Bananas", 1.50, 20));
我想找出如何通过Store类的代码块传递新产品,如上所示。
答案 0 :(得分:1)
您的语法错误。实例化InventoryItem
时缺少逗号。
替换
new InventoryItem(new Product("Bananas", 1.50)20)
使用
new InventoryItem(new Product("Bananas", 1.50), 20)
答案 1 :(得分:1)
更改InventoryItem
构造函数。构造函数应该使用(Product product)
之类的参数,而不要使用新关键字
public InventoryItem(Product product, int quantity) {
this.quantity = quantity;
}
答案 2 :(得分:0)
更改库存项目构造函数以传递这样的数据。
UPLOADCARE_LOCALE_TRANSLATIONS = {
// messages for widget
errors: {
'dimensions': 'The image has to be 800x600px or larger.'
},
// messages for dialog’s error page
dialog: { tabs: { preview: { error: {
'dimensions': {
title: 'Error.',
text: 'The image is too small. Try to upload another one.',
back: 'Back'
}
} } } }
};