gpt4 book ai didi

java - 如何将所有枚举值正确插入到哈希集中?

转载 作者:行者123 更新时间:2023-12-02 05:03:58 25 4
gpt4 key购买 nike

我在 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/

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