arrays - 将相同的对象添加到数组
问题描述
为什么最后一个对象只存储在我的数组中?请帮忙。
这是我创建对象的主要方法。
public class Main {
public static void main(String[] args) {
Service sv = new Service();
Product pd1 = new Product();
pd1.setName("Apple");
pd1.setCategory("Perishable");
sv.addProduct(pd1);
Product pd2 = new Product();
pd2.setName("Banana");
pd2.setCategory("Perishable");
sv.addProduct(pd2);
Product pd3 = new Product();
pd3.setName("Flour");
pd3.setCategory("Nonperishable");
sv.addProduct(pd3);
Product pd4 = new Product();
pd4.setName("Mani");
pd4.setCategory("Nonperishable");
sv.addProduct(pd4);
Product pd5 = new Product();
pd5.setName("Mango");
pd5.setCategory("Perishable");
sv.addProduct(pd5);
sv.reviewProduct();
}
}
public class Service {
Product[] myProduct = new Product[10];
public void addProduct(Product p) {
for(int i = 0;i<myProduct.length;i++) {
//myProduct[i] = new Product();
myProduct[i] = p;
}
}
public void reviewProduct() {
//for(int i=0;i<myProduct.length;i++) {
System.out.println(myProduct[1].getName());
System.out.println(myProduct[1].getCategory());
//}
}
}
解决方案
您的addProduct
函数会覆盖数组中的先前元素,因为它用相同的元素填充数组。
您应该改用List,并将add
元素放入其中。如有必要,您可以稍后将其转换为数组。
推荐阅读
- amazon-web-services - 无法使用 Pyspark 使用气流 emr 运算符从 EMR 集群连接到雪花
- css - CSS:带有溢出:隐藏和最大高度是行高的倍数,“隐藏”文本在 Chrome 和 Edge 中渗入视图
- python - 如果某些语句在 bash 中为真,则执行 python 代码
- function - 我怎样才能使用这个函数参数
- javascript - 将输入文本框动态添加到 Asp.Net core View C# + JS
- javascript - 如何在引导程序 5 中使用推拉?
- javascript - 如何访问将要保存在“insertMany”中间件中的数据?
- sql - 如何将 txt 文件(来自 SQLCMD)读入 Pandas DataFrame?
- c# - 如何将 foreach 输出中的第二行用作 C# 中的 Uri?
- javascript - Web Serial API - 流包含 ASCII 和原始数据时的问题