Java对象相等方法和布尔值
Java Object equal method and Boolean value
我有以下代码片段
format(Object obj) {
if(obj.equals("false")) {
buffer.append("No");
} else {
buffer.append("Yes");
}
}
调试时,我验证obj变量的值是一个值为“false”的布尔对象,但if子句总是转到Yes指令。你能帮我理解为什么吗?
当您 运行 obj.equals("false")
尝试比较 obj
、Boolean
和 "false"
时,String
].
所以你可以尝试先将Boolean
转换成字符串:
if(obj.toString().equals("false")){
buffer.append("No");
} else {
buffer.append("Yes");
}
或者,更好的是,正如@Nexevis 所建议的,您可以将 obj
直接与 Boolean
:
进行比较
if(obj.equals(false)){
buffer.append("No");
} else {
buffer.append("Yes");
}
我有以下代码片段
format(Object obj) {
if(obj.equals("false")) {
buffer.append("No");
} else {
buffer.append("Yes");
}
}
调试时,我验证obj变量的值是一个值为“false”的布尔对象,但if子句总是转到Yes指令。你能帮我理解为什么吗?
当您 运行 obj.equals("false")
尝试比较 obj
、Boolean
和 "false"
时,String
].
所以你可以尝试先将Boolean
转换成字符串:
if(obj.toString().equals("false")){
buffer.append("No");
} else {
buffer.append("Yes");
}
或者,更好的是,正如@Nexevis 所建议的,您可以将 obj
直接与 Boolean
:
if(obj.equals(false)){
buffer.append("No");
} else {
buffer.append("Yes");
}