【问题标题】:Loop through HashSet of Objects Java循环遍历对象的 HashSet Java
【发布时间】: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


【解决方案1】:

字符串不等于枚举。你可以写一些类似g.name().equals("group_certification_staff")的东西来看看它是否有相同的名字。

【讨论】:

    猜你喜欢
    • 2020-06-17
    • 2020-06-09
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2017-06-12
    相关资源
    最近更新 更多