gpt4 book ai didi

android - Android 中的安全枚举自定义属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:06 25 4
gpt4 key购买 nike

我认为有一种情况很常见。我有一个 Java 枚举:

public enum Flavour { CHOCOLATE, STRAWBERRY }

我在 attrs.xml 中定义了一个自定义属性:

<attr name="flavour">
<enum name="chocolate" value="0" />
<enum name="strawberry" value="1" />
</attr>

但这感觉真的很脆弱。它依赖于我手动正确地从属性映射到枚举。

如果有人将“SARDINE”添加到 enum Flavor 的末尾,那么它显然不会自动添加到属性定义中。这很公平。

但更糟糕的是,如果有人在枚举中间添加“SARDINE”,它会破坏使用“strawberry”的 xml 布局。

人们如何克服这一点?我考虑过使用字符串(并使用 Flavour.valueOf()),但我希望可能有更简洁的解决方案。

最佳答案

只要您使 Flavor 枚举保持最新并与 flavor 属性同步,就应该没问题,但如果您真的不想担心顺序,则不要使用索引。而是像您考虑的那样使用字符串。

public enum Flavor {
CHOCOLATE, STRAWBERRY

public static Flavor get(String s) {
s = s.toLowerCase();
if(s.equals("chocolate")) {
return CHOCOLATE;
} else {
return STRAWBERRY;
}
}
}

关于android - Android 中的安全枚举自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19026858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com