我想用动态数量的变量创建一个java类。这些动态变量将从配置文件中读取。
示例:我有一个属性文件,如
{
"data": "int",
"name": "string",
"addr": "string",
"age" : "int"
}
在某些情况下,可能存在新变量或上述配置中缺少的变量很少。
我想用上面的属性文件中提到的变量创建一个java。是否有可能在java中创建这样的类,如果是,那么有人可以为此提供示例代码吗?
答案 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。