public class TestPass {
int a,b;
TestPass(int i,int j)
{
a=i;
b=j;
}
boolean equals(TestPass o)
{
if(o.a==a&&o.b==b)
return true;
else
return false;
}
}
class Test
{
public static void main(String[] args)
{
TestPass ob1=new TestPass(100, 22);
TestPass ob2=new TestPass(100, 23);
System.out.println("Condition="+ob1.equals(ob2));
}
}
输出:
条件=错误
我找不到这个输出的逻辑,bcoz'if(o.a==a
TestPass ob1=new TestPass(100, 22);
TestPass ob2=new TestPass(100, 23);
这里我给出了不同的值,但我认为是短路运算符(
考虑这个问题的一种方法是分割if条件
boolean equals2(TestPass o) {
if (o.a == a) {
if (o.b == b) {
return true;
}
return false;
}
return false;
}
甚至
boolean equals3(TestPass o) {
if (o.a == a) {
return o.b == b;
}
return false;
}
仅供参考,你的等式可以简化为返回o.a==a
这是关于短路的规则,你需要记住。
╔══════════╦════════════════════════════════════════════════════════════════════════╗
║ Operator ║ short-circuit ║
╠══════════╬════════════════════════════════════════════════════════════════════════╣
║ A && B ║ if A==false then the B expression is never evaluated ║
║ A || B ║ if A==true then the B expression is never evaluated ║
╚══════════╩════════════════════════════════════════════════════════════════════════╝
短路仅在左侧为假时适用。如果左侧为真,它将继续检查右侧。
在你的例子中,o.a==a
是真的,所以它会检查右边:o.b==b
是假的,使其整体为假。
给出静态编程语言中的编译错误(意外标记(使用';'分隔同一行上的表达式))
问题内容: 哪一组短路,这到底意味着复杂的条件表达式短路了? 问题答案: 在与运营商“短路”,这意味着如果没有必要,他们不评价的右手边。 在与运营商,如逻辑运算符时,始终评估两侧。 每个操作员只有一种短路情况,它们是: -不必知道右侧是什么,结果必须是 -不必知道右侧是什么,结果必须是 让我们在一个简单的示例中比较行为: 第二个版本使用非短路运算符,并将抛出,但第一个版本将无例外地返回;
在xsl样式表中调用该对象的实例方法,如下所示: 我的问题是:这样做是否恰当?哪种XSLT处理器适合以这种方式使用参数?还有别的办法吗? 我试用了Xalan(org.apache.Xalan.xsltc.trax.TransformerFactoryImpl),但遇到一个异常,即找不到该方法: 该方法是公共的,没有参数。
Swagger提出了一个类似的问题:重用枚举定义作为查询参数。我的问题是我是否可以使用枚举(可重用或不可重用)。每当我尝试这样做的时候,我都会得到错误,但是使用字符串不会给出任何错误 我的问题是上面的例子是否有效,或者我应该尝试什么可能的改变。我使用的是OpenAPI 3.0.0。 错误: 我对XX.client知之甚少.cpp .它是一个自动生成的文件,是在编译yaml文件后构建的。
问题内容: 我正在阅读Kathy Sierra和Bert Bates编写的SCJP Java 6,这本书让我非常困惑。在第245页上,他们声明以下代码。 然后在下一页上,它们具有以下代码 我很困惑!当我自己尝试该方法时,似乎无法使用==来比较使用equals()方法的方式。即使Integer变量设置为相同的值(即10),使用==总是给我’false’。我对么?使用==比较相同的Integer对象(
问题内容: 我在开发过程中注意到了这一点。 为什么三元运算符不能在方法参数中使用?这显然是或(其他)。 问题答案: 表达式的类型为,因为这是()和()的常见类型。 您没有任何接受的方法。因此,编译错误。