4

我有字符串数组用于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 类的定义方式(注意这是一个更简单的版本,在我的实际代码中,还有一些方法或变量,并且每个 Enum 实例都是大写的,如 CAT)。

public enum Animal {
    Cat, Dog, Rabbit, Bird,     
}

如您所见,我实际上在EnumXML 和 XML 中重复了同样的事情。根据 DRY 的说法,这并不是很好。我应该删除哪个,应该如何删除?

在这一点上,我倾向于保留Enum,因为它在功能上比 XML 更通用,而且可维护性也不差。我可能担心的唯一可能的问题是它的性能。它们可能需要更多内存和一些额外的编码工作。

4

1 回答 1

1

如果要避免重复,则应保留 Enum,然后使用for(Animal animal:Animal.values()) {...}.

您可以使用 Enum 名称作为检索本地化标签或类似内容的键。

于 2013-01-08T16:41:08.420 回答