如何使用动态数量的变量创建java类

时间:2017-01-17 15:25:44

标签: java

我想用动态数量的变量创建一个java类。这些动态变量将从配置文件中读取。

示例:我有一个属性文件,如

{
 "data": "int",
 "name": "string",
 "addr": "string",
 "age" : "int"
}

在某些情况下,可能存在新变量或上述配置中缺少的变量很少。

我想用上面的属性文件中提到的变量创建一个java。是否有可能在java中创建这样的类,如果是,那么有人可以为此提供示例代码吗?

4 个答案:

答案 0 :(得分:1)

我认为你需要对java类进行更多的研究。没有具有动态“数量”变量的java类。但是你可以给出一个类属性,但是只需要设置一些属性,例如。

class DataFile {

    int data;
    String name;
    String addr;
    int age;
}

然后您可以为每个字段创建setter和getter。

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

public String getName() {
    return this.name;
}

这样你就可以实例化一个类的成员并设置你拥有的数据。

DataFile d = new DataFile();
d.setName("John");

请记住,任何类方法(如setName和getName)都必须位于{}内,以定义它们所属的类。他们不是为了在视觉上将它们分开。

答案 1 :(得分:0)

定义您可以通过密钥访问的Map<String, String>

但为什么?

最后所有那些“变量”将是相同的类型...... - &gt;串...

在配置或属性文件中完成相同的原理....

答案 2 :(得分:0)

所有这些已经存在。它在Java中也被称为“属性”。

所以,只需阅读它们here

换句话说:你可以/应该使用java.util.Properties;并且完全支持从文件中读取该信息;或写信给。

Java属性文件格式与您当前的文件格式不匹配;但是,当你做“真正的”Java时,那么最“现成”的解决方案就是Java属性;所以你可以考虑改变你的文件格式。

并给出实际答案:Java不支持动态数量的字段。这就是地图的用途;而Property类就是那种 - 具有附加功能的某种Map。

答案 3 :(得分:0)

这样的事情

public class Model {
  Map model;

  public Model(String json) {
    model = new Gson().fromJson(jsonModel, Map.class);
  }

  public Object getValue(String key) {
    return model.get(key);
  }
}

但是您希望您的模型保存值的数据,将字段的类型推断留给Java。