我在Java有以下问题。
我有一个eunm,它包含两个值,代表两个字符串值“协调”和“PISC”:
private enum exclusion {COORDINATION, PISC};
因此,我创建了这个getEnums()方法,它返回一个哈希集,其中包含作为字符串的枚举值:
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;
}
问题是,当这个方法被称为返回值对象包含2字符串,我认为,但使用deubugget的值放入这个HashSet不是协调和PISC,而是这样的东西:
Inserted values: [Legp.prc.km.actions.configurationProject.ConfigurationProjectAction$Exclusion;@34653605
Valore inserito: [Legp.prc.km.actions.configurationProject.ConfigurationProjectAction$Exclusion;@39510a30
我认为问题与如何将值插入值哈希集中有关
然后,在代码的其他地方,我有以下循环:
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”或“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());
}
当前添加的是包含枚举所有值的数组的String表示形式,而不是每个值的String表示形式。
编者按:这个问题有一个复杂的历史,但归结为: *要了解如何通过键值对枚举哈希表的条目,请参阅接受的答案。 *要了解如何通过键值的集合,请参阅其他答案。 我想我又陷入了XY问题,我最初的问题是关于过滤哈希表。我发现在创建哈希表之前更容易过滤。问题回答了,对吧? 不,Y问题是循环每个键并使用@briantist帮助我的值。 我的目标是循环使用键名(即时间戳),并使用键名作为任务名称和触发器来安排任务。
我正在Java Spring/Hibernate中使用Swagger-UI。Swagger UI版本是2。 我很难使用枚举。
我试图使用Datastax驱动程序将作为<code>int、time、hash</code>提供的值存储到Cassandra中。 哈希显示为< code>{ "Q17.1_4"= 已将表定义为: 整数 时间戳 地图 PK(int,时间戳) 我可以把PK插入ok,但是我很难把哈希值强制转换成Cassandra可以处理的东西。 创建了一个准备好的语句,并在(尝试)遍历值时使用它: 如果我将“val”作
问题内容: 我知道该信息在枚举中可用。 如何打印所有枚举值,如:? 输出: 姓名 教育 电子邮件 电话 如何在另一个函数中将该枚举作为arg 传递? 问题答案: 您的第二部分…与或一样
问题内容: 我遇到了这个问题,我不知道需要迭代其实际值的实际类型。 任何想法如何从enumValue中提取其可能的值? 问题答案:
我使用Enum4库创建enum类,如下所示: 我想在某处打印作为列表。如何实现这一点?