gpt4 book ai didi

java - 创建一个容纳对象的对象?

转载 作者:行者123 更新时间:2023-12-01 13:42:58 24 4
gpt4 key购买 nike

我正在尝试创建一个库存跟踪系统。我有一个名为“InventoryItem”的类(在 Java 中),具有名称和数量属性。

这对于简单对象来说效果很好,但是如果我的库存项目包含其他库存项目(例如带有 RAM 的服务器)怎么办?

我应该创建自己的数据类型,还是有更好的方法来做到这一点(可能是链接列表)?我的类应该扩展该数据类型吗?还是我不应该创建自己的类?

到目前为止我的类(class):

public class InventoryItem {
private String name;
private int quantity;
private InventoryItem childInventoryItem;

// CONSTRUCTORS
public InventoryItem() {
}

public InventoryItem(int quantity, String name) {
this.quantity = quantity;
this.name = name;
}

//GETTERS
public String getName() {
return name;
}

public int getQuantity() {
return quantity;
}

//SETTERS

public void setName(String name) {
this.name = name;
}

public void setQuantity(int quantity) {
this.quantity = quantity;
}
}

最佳答案

树通常是任何父子关系中所涉及的。如果您没有做任何复杂的事情,您可以简单地维护一个基本上是 List<InventoryItem> 的内部列表。其中包含任何子项目。

因此,您要添加到类中的所有内容都是这样的:

public class InventoryItem {

...
private List<InventoryItem> composingItems = new ArrayList<>(); //if still using Java 6 this must be new ArrayList<InventoryItem>();

...

public void addComposingItem(InventoryItem composingItem) {
composingItems.add(composingItems);
}

public List<InventoryItem> getComposingItems() {
//Enforce immutability so no one can mess with the collection. However
//this doesn't guarantee immutability for the objects inside the list;
//you will have to enforce that yourself.
return Collections.umodifiableList(composingItems);
}
}

关于java - 创建一个容纳对象的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20556087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com