Java 顺序布尔与条件句

Java 顺序布尔与条件句,java,boolean,logical-operators,Java,Boolean,Logical Operators,下面我有一个方法,如果满足第二个条件,它将返回true。但是,如果满足第一个条件,我想返回false。然而,我遇到的问题是它总是返回false public static boolean matching(Request a, Request b) { if (a.info[2].equals("*") & b.info[2].equals("*")) { return false; } return ((a.inf

下面我有一个方法,如果满足第二个条件,它将返回true。但是,如果满足第一个条件,我想返回false。然而,我遇到的问题是它总是返回false

public static boolean matching(Request a, Request b) {
        if (a.info[2].equals("*") & b.info[2].equals("*")) {
            return false;
        }
        return ((a.info[1].equals(b.info[1]) && a.info[2].equals(b.info[2])) || (a.info[1]
                .equals(b.info[1]) && a.info[2].equals("*") || b.info[2]
                    .equals("*")));

    }

如果不想理解你的整个条件句,我猜你这里有一个打字错误-

if (a.info[2].equals("*") & b.info[2].equals("*")) {
你是说

if (a.info[2].equals("*") && b.info[2].equals("*")) {
相反

您可以查看以了解更多信息

编辑


如果问题仍然存在,那么第二个条件句很可能存在问题。最好的方法是设置一个断点,在运行时显示所有相关的值;您应该很容易看出哪里出了问题。

您能给我们展示一个您希望返回
true
的输入示例吗?如果它一直返回false,那么第一个条件为true,或者第二个条件为false。使用调试器找出原因。我们对这些数组的内容没有任何线索。是的,我放了&&基本上它是一个服务器程序。如果两者都是has*,则应返回false并等待。它做到了。然而,如果它不是star,它仍然会返回false和WAIT。请尝试用可以理解的例子来描述你想要达到的条件(我相信它会通过正确地陈述来解决你的问题)。@JayPatel,拜托,修正答案中的
&
,以避免混淆,并让新读者更快地帮助您。好吧,这不是问题所在。我只是想弄清楚问题的原因。如果这不是问题所在,那么你所说的@JayPatel胡闹是什么意思@JayPatel是一个输入示例,您希望返回
true
,而
Request
类代码可能会有所帮助。请仔细检查执行线程中的条件。单个
“&”
绝对不是问题所在。所以如果你知道这个问题,你应该更新你的答案或者删除它。是的。。。我不知道。。。如果每次有人说“这不是问题,我只是在胡闹……哦,等等,看起来这才是问题所在”,我就会得到一枚硬币: