Java - 新对象的动态实例化

时间:2016-07-22 20:22:35

标签: java oop reflection

在编写需要动态创建对象的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中的代码以显示我的解决方案。

现在技术上解决了这个问题。

0 个答案:

没有答案