在编写需要动态创建对象的Java应用程序的过程中,我是一个相当新的开发人员。这些对象是唯一的,需要唯一引用,但它们都是具有相同属性的相同通用数据类的一部分。这些属性中的每一个都是String
,它们是:
value
source
interfaceCode
,可让我将数据放置在接口系统中的正确位置parent
每个人都有吸气剂/安装者。每个属性的值都是使用公共构造函数中调用的setter设置的,并且传入了两个参数。这是一个代码示例:
class DataObject {
private String value, source, interfaceCode, parent;
public DataObject(String arg1, String arg2) {
setValue(arg1);
setSource(arg2);
setInterfaceCode(arg2);
setParent(arg2);
}
//setters/getters here
/
/
/
}
我遇到的问题是确定如何唯一且动态地创建这些对象 - 我有输入代码来读取数据源文档并提取我想要的数据。如果它找到某个源类型的数据(每个文档出现一次),则需要创建一个新的Data Object
并将值分配给它。此引用旨在存储在HashMap<String,DataObject
中,其中String
将数据源集描述为密钥,DataObject
引用是指定的值。这些都在不同的类中运行,如下所示:
class DataParser {
private String value, source;
protected static HashMap<String, DataObject> dataObjects = new HashMap<String,DataObject>();
public void DataParser() {
if (value != null && source != null) {
dataObjects.put((source), new DataObject(source, value));
}
}
public HashMap<String,DataObject> getHashMap() {
return dataObjects;
}
//data setter/getter here to grab data from data source and provide access
/
/
/
}
所以,我已经阅读了一大堆关于这个的StackOverflow帖子/问题,我仍然很短。从许多答案中,我认为这个问题可能需要反思。但是,我对这个话题有些不知所措,并不确定这是不是正确的路线。
我担心的是,使用我的原始代码,每次我实例化一个新的DataObject
时,newData
的{{1}}引用都会被覆盖。理想情况下,我会让它实例化一个新的Object,其变量名称等同于DataObject
的值,但这完全没必要 - 重要的是参考。
对于这个问题,有人能指出我正确的方向吗?
编辑:看来我原本没有问过正确的问题。但是我在评论中与人们进行的快速讨论帮助我找出了正确的问题,这让我通过谷歌找到了正确的答案。我已经更新了DataParser中的代码以显示我的解决方案。
现在技术上解决了这个问题。