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 更长的回答: 你想做字符串比较,使用: if (argu1.equals(argu2)) 在某些情况下,==运算符似乎可能会进行相等性检查,例如: String var1 = "abc"; String var2 = "abc"; String result = ("abc" == "abc"); 在这种情况下,结果是真的,最初看起来似乎是相等比较,但实际上是编译器优化,其中var1和var2共享相同的引用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |