我有用于Spinner
等的字符串数组。
<string-array name="Animal">
<item >Cat</item>
<item >Dog</item>
<item >Rabbit</item>
<item >Bird</item>
</string-array>
我有一个容器类,用于包含用户输入的值或从Spinner
中选择。成员变量主要是基元或Enum
。
public class Container {
protected int index;
protected int age;
protected String name;
protected Animal pet;
}
这就是定义一个枚举类的方法(注意这是一个更简单的版本,在我的实际代码中,还有一些更多的方法或变量,每个Enum实例都是大写的,比如CAT)。
public enum Animal {
Cat, Dog, Rabbit, Bird,
}
如您所见,我实际上在Enum
和XML中重复了同样的事情。根据DRY,这并不是很好。我应该删除哪个,应该怎么做?
此时,我倾向于保留Enum
,因为它在功能上比XML更通用,并且具有可维护性。我可能关心的唯一可能的问题是它的性能。它们可能需要更多内存和一些额外的编码工作。
答案 0 :(得分:1)
如果你想避免重复,你应该保留Enum,然后用for(Animal animal:Animal.values()) {...}
填充微调器的programmaticaly。
您可以使用枚举名称作为键来检索本地化标签或类似的东西。