加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么我的if条件比较字符串失败?

发布时间:2020-12-15 08:47:51 所属栏目:Java 来源:网络整理
导读:这个程序执行没有进入if条件. 请检查我指定的评论. public static void filterObject(ArrayListtreewalker.VariableNode variableNodeslist,ArrayListtreewalker.ObjectNode objectNodeslist,ArrayListtreewalker.ClassNode classNodeslist) { int i,j; for
这个程序执行没有进入if条件.
请检查我指定的评论.

public static void filterObject(ArrayList<treewalker.VariableNode> variableNodeslist,ArrayList<treewalker.ObjectNode> objectNodeslist,ArrayList<treewalker.ClassNode> classNodeslist) {
        int i,j;
        for (i = 0; i < variableNodeslist.size(); i++) {
            for (j = 0; j < classNodeslist.size(); j++) {
                String argu1 = variableNodeslist.get(i).typeClass.toString();
                String argu2 = classNodeslist.get(j).name.toString();
                System.out.println(argu1);
                System.out.println(argu2);
                if (argu1 == argu2)//this if loop is not getting executed 
                {
                    System.out.println("inside for");
                }
                System.out.println("hi");
            }
        }
    }

解决方法

简短回答:
argu1.equals(argu2)而不是argu1 == argu2

更长的回答:
Java中的==运算符执行引用比较.

你想做字符串比较,使用:

if (argu1.equals(argu2))

在某些情况下,==运算符似乎可能会进行相等性检查,例如:

String var1 = "abc";
String var2 = "abc";

String result = ("abc" == "abc");

在这种情况下,结果是真的,最初看起来似乎是相等比较,但实际上是编译器优化,其中var1和var2共享相同的引用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读