【发布时间】:2012-02-28 13:42:59
【问题描述】:
我试图通过使用反射来避免对配置类的序列化进行硬编码,但我遇到了一种我无法弄清楚的情况。这就是我想要做的。
我有这样的课
public class Configuration { public boolean bool = false; public int integer = 1; public int[] intArray = {0, 1}; }
我想使用反射将名称和值保存到 属性字段。
--properties-- bool=false integer=1 intArray=0,1
名称部分非常简单。我的问题是获取每个字段的值,尤其是获取每个 int[] 的值。除了数组,所有值都是原始的,所以 toString() 可以正常工作。
谁能展示比 Oracle 更好的例子并帮助我?
【问题讨论】:
-
new int[]{1,2,3}.toString()不会像您期望的那样工作。它将委托给Object.toString(); -
为什么不使用 XML 或 JSON?两者都已准备好使用序列化程序并且相当易于阅读。
-
@llia G 我实际上并没有使用 Propteries 对象将结果保存到文件中。我正在研究一种非常复杂的方法来保存 gui 的设置,并从配置文件中启动它们。我将使用属性文件在 gui 启动时设置 JComponent 的值。我使用了Component.setName(String)方法在Configuration文件中对应值的名称。
-
由于您在运行时无法知道确切的字段类型,因此您必须为每个原语创建一个案例,并使用反射类调用 Field 类的相应 get
方法。跨度> -
@ggreiner 是否可以将数组解析为 Object[]?
标签: java serialization reflection properties