作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个这样的枚举:
public enum Lang {
TR("tr"),
EN("en"),
SE("se");
private String langName;
private Lang(String langName) {
this.langName = langName;
}
}
在另一个类上,我想检查 langName 是否存在。如果我放置一个 getter 方法,我可以遍历 langNames:
for (Lang langEnum : Lang.values()) {
langEnum.getLangName();
}
但是我的枚举可能太长而且我不想遍历数组。我想使用 Map 或 Set。另一方面,我不想在我的枚举中使用另一个变量。
如何检查我的枚举是否有 langName?
最佳答案
好吧,如果每个枚举常量代表一种语言(正如代码似乎暗示的那样),那么我会使用 EnumSet。
Set<Lang> langs = EnumSet.allOf(Lang.class);
然后我可以检查是否已经存在一种语言。喜欢
if(langs.contains(Lang.EN) {
//...
}
不确定这是否是您正在寻找的答案。 EnumSet 的 contains 方法甚至不会遍历内部集合。内部集合将存储在一个数组中,并根据哈希计算查找元素。所以,这实际上应该实现您在问题中的要求。
关于java - 在不迭代的情况下检查枚举的成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18318559/
我是一名优秀的程序员,十分优秀!