【发布时间】:2015-09-16 07:35:52
【问题描述】:
我有一个如下所示的枚举:
package de.test;
public enum TestEnum {
bar("Test");
private final String label;
private TestEnum(String labelName) {
this.label = labelName;
}
public String getLabel() {
return label;
}
}
我想将字符串“Test”存储在 Java 属性文件中。枚举“TestEnum”应该存储属性键,它的“getLabel”方法应该在属性文件中查找适当的值并返回这个值。
package de.test;
public enum TestEnum {
bar("test.key");
private final String label;
private TestEnum(String labelKey) {
this.label = labelKey;
}
public String getLabel() {
// Look up properties value with label as key in the according properties file
String labelValue = ...
return labelValue;
}
}
我有一个如下所示的属性文件:
test.key=Test
这个问题的背景是:我有一个Wicket Component,比如说一个标签,标签的值存储在这个枚举中。但是枚举不应该保存使用过的字符串,而应该只保存属性文件的键。将属性键返回到 Wicket 组件并让组件在适当的属性文件中查找值的解决方案在我的情况下是不切实际的。
我使用 Wicket 6.17 和 Java 8。
感谢您的提示。
编辑:这个问题的意图: 在这种情况下使用枚举是由于可能无法更改的旧架构。另一方面,存在一个请求,即不允许此枚举保存标签的具体字符串,因为 GUI 中使用的所有字符串都必须导出到属性文件。
我的另一个目的是了解这是否可以让枚举使用属性文件,也许在 Wicket 框架的帮助下。
【问题讨论】:
-
1.给出可编译的代码(至少是第一个枚举)。 2. 可能我没看懂这个问题,可能你java enum 的。最终,如果我们构建可编译的代码,枚举只会通过第一次类加载初始化一次——这是你的目标吗?看来你打破了 Java 枚举哲学
-
编译错误,运行时异常(带有stacktrace)是程序员的,如果Yoy不包括,你失去了专业anwser的机会
-
Wicket 模型理念也被误解,示例与 wicket/model 无关
-
编辑了我的问题,希望它更具体。感谢您的建议。编辑:我测试了第一个代码 sn-p 并且它是可编译的。
-
好的。修改后更好。你写的一切都是“典型的”,除了枚举。为什么要枚举?这是规范文档(不要害怕“内部化”这个词,也可以用于单一语言替换)cwiki.apache.org/confluence/display/WICKET/…
标签: java properties enums wicket