【发布时间】:2019-10-31 18:50:33
【问题描述】:
我正在尝试遍历 Java 8 中枚举对象的 HashSet,以查看值是否等于特定字符串。 equals 和 == 我都试过了,但都没有返回 true。
HashSet 看起来像:
我尝试了以下方法:
for(Object g : groups){
if(g.equals("group_certification_staff")){
//Do stuff
}
for(Object g : groups){
if(g == "group_certification_staff"){
//Do stuff
}
但它总是返回错误
我错过了什么?
【问题讨论】:
-
如果
groups包含Enum对象,则不要将它们与Strings 进行比较。将它们与您正在寻找的Enum进行比较。将g == "group_certification_staff"更改为g == SecurityGroup.group_certification_staff -
将g转换为SecurityGroup,然后比较。
-
是的@mypetlion - 你是对的
-
出于好奇,是否有理由使用字符串而不是
g.contains(SecurityGroup.group_certification_staff)? -
@VGR - 没有。我不习惯在 Java 中工作 - 老实说,这只是缺乏经验/知识。 mypetition之前的说法是正确的
标签: java object for-loop hashset