(这段代码是针对安卓的 实际上,我需要代码能够在安卓和Java SE之间通用。)
我想要一个“设置”类,包含各种游戏设置,例如
public int map_size;
public String server_name;
数据需要经常访问(因此成员而不是键值映射),并且有时需要以某种标准方式进行序列化/反序列化(主要是通过网络发送)。
我想能够
将对象序列化并反序列化为XML或JSON,而无需明确编写每个成员的代码(但仍具有一定程度的格式控制)。
定义关于每个成员的一些(常数)元数据(默认值、GUI名称、XML标识符等),以一种允许在源代码中轻松修改的方式进行定义(我想能够添加新的元属性,定义其默认值,并且不必到处指定它)。
1可以通过使用反射实现。对于2,我认为Java注释类成员非常适合:
@Setting(id = "server_name", name = "Server title", default = "Server0")
public String server_name;
但是看起来(用户定义的)注释在Android上还没有生效 - 使用它们的代码会导致编译器崩溃...
哪种方式是存储关于设置的元数据最简单的方法(或者另一种处理所有这些的方法)?
- 在某个外部XML文件中存储有关设置的信息? - 将其存储在Java数据结构中,并使用代码定义内容?以这种方式定义数据似乎非常笨重,特别是与注释的关键字参数相比较。 - ?