作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Java 中遇到以下问题。
我有这个 eum,它包含 2 个值,分别代表 2 个字符串值 "COORDINATION" 和 "PISC" :
private enum exclusion {COORDINATION, PISC};
所以我创建了这个 getEnums() 方法,它返回一个 HashSet ,其中包含字符串形式的枚举值:
private static HashSet<String> getEnums() {
HashSet<String> values = new HashSet<String>();
for (Exclusion e : Exclusion.values()) {
//values.add(Exclusion.values());
values.add(Exclusion.values().toString());
System.out.println("Inserted values: " + e.values().toString());
}
return values;
}
问题是,当调用此方法时,返回的 values 对象包含 2 个字符串,正如我所料,但使用 deubugget 放入此 HashSet 中的值不是 “COORDINATION”和“PISC”但是像这样:
Inserted values: [Legp.prc.km.actions.configurationProject.ConfigurationProjectAction$Exclusion;@34653605
Valore inserito: [Legp.prc.km.actions.configurationProject.ConfigurationProjectAction$Exclusion;@39510a30
我认为问题与我如何将值插入到值 HashSet 中有关
然后,在我的代码的其他地方,我有以下循环:
HashSet esclusionHashSet = getEnums();
for (DLFolder dlFolder : listFolder) {
if (dlFolder.getPath().split("/").length <= 4 && dlFolder.getPath().contains(KmConstants.TAXONOMY_PARENT_FOLDER) && !esclusionHashSet.contains(dlFolder.getName())) {
treePath.put(dlFolder.getPath(), dlFolder);
path.add(dlFolder.getPath());
}
}
正如您所看到的,对于列表对象中的所有元素,我检查 dlFolder 对象的名称(可能是 "COORDINATION" 或 < strong>“PISC” 不在包含我原始 排除 枚举中的值的 esclusionHashSet 中,检查是通过以下方式完成的:
!esclusionHashSet.contains(dlFolder.getName())
问题是它总是返回 FALSE(似乎 esclusionHashSet* 不包含 **“COORDINATION” 和 “PISC” 值)
如何解决这个问题?我错过了什么?
最佳答案
而不是:
for (Exclusion e : Exclusion.values()) {
//values.add(Exclusion.values());
values.add(Exclusion.values().toString());
System.out.println("Inserted values: " + e.values().toString());
}
你应该这样做:
for (Exclusion e : Exclusion.values()) {
values.add(e.name());
System.out.println("Inserted value: " + e.name());
}
您当前添加的是包含枚举所有值的数组的字符串表示形式,而不是每个值的字符串表示形式。
关于java - 如何将所有枚举值正确插入到哈希集中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27980546/
我是一名优秀的程序员,十分优秀!