gpt4 book ai didi

java - 如何通过B类构造函数填充A类中的对象列表

转载 作者:太空宇宙 更新时间:2023-11-04 11:09:47 24 4
gpt4 key购买 nike

我有一个问题:有 2 个类实现了一些接口(interface)。在 A 类中,我有 B 类的对象列表。

是否有一种方法可以使用 B 类构造函数来填充这些列表,而不是对将要创建的每个对象进行硬编码?在 A 类中,我有通过给定参数搜索特定 B 类对象的方法,但问题是弄清楚如何在每次创建新对象时“自动填充”此列表。

我试图从类 A 中调用 addNodeToList() 方法,但如果没有此类的实例,我无法做到这一点。

有什么优雅的方式来自动填充此列表吗?

这是代码:

A 级

public class MyStructure implements IMyStructure {

private List<INode> nodes;

public MyStructure() {

}

@Override
public INode findByCode(String code) {
//impl
}

@Override
public INode findByRenderer(String renderer) {
//impl
}

@Override
public int count() {{
//impl
}

public void addNodeToList(INode node){
nodes.add(node);
}
}

B 级

public class CompositeNode implements ICompositeNode {
private String code;
private String renderer;

MyStructure myStructure;

public static int counter;

public CompositeNode(String code, String renderer){
this.code= code;
this.renderer=renderer;
myStructure.addNodeToList(this);
counter++;
}

编辑:我正在考虑在 B 类内部创建静态列表,但我认为这不是一个好的做法。我不知道如何有效地解决这个问题。

完成:我在 A 类内部创建了一个方法,如下所示:

public class MyStructure implements IMyStructure {
public void addNodeToList(String code, String renderer) {

CompositeNode node = new CompositeNode(code, renderer);

nodes.add(node);
}

它按照我想要的方式工作 - 我不将列表存储在 B 类中,而是自行填充列表。

最佳答案

在不了解更多上下文和用法的情况下,我只需在 A 类中添加一个 getter:

public class MyStructure implements IMyStructure {
//...
public List<INode> getNodes() {
return this.nodes;
}
//..
}

然后可以在B类中使用它来将元素添加到A类的列表中:

public CompositeNode(String code, String renderer){
//...
myStructure.getNodes.add(this);
//...
}

我认为您不需要 addNodeToList 方法,除非在其他地方使用。

关于java - 如何通过B类构造函数填充A类中的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46145901/

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