可以吗? 例如
string s="abs";
if(s) or if(s==null) or if(s.equals(""))
以上哪个是正确的? 也写整数..
int value=5;
说
if(value) then condition
是正确的吗?
答案 0 :(得分:4)
if
语句中的条件必须是boolean
表达式。
这意味着它必须是 类型boolean
。
String
和int
都不是boolean
,因此以下两个不有效:
if (someString) {}
if (someInt) {}
当然,您可以以某种方式拥有包含boolean
值的String
个表达式。以下将工作:
if (someString == null) {}
if (someString.equals("")) {}
他们都编译但行为不同。第一个将检查someString
是否已设置为null
(即它根本不引用String
个对象)。如果someString
引用空String
(长度为0的那个),则第二个将检查。
答案 1 :(得分:2)
我建议考虑另一种选择,
if("expected".equals(s))
这种方法的优点是当s == null
此表达式为假而不是抛出NullPointerException。
答案 2 :(得分:0)
在Java中,如果s不是布尔值,则不能if (s)
。
答案 3 :(得分:0)
在java expect boolean中,如果条件检查,则不允许任何内容。
甚至在java中也不允许赋值,这与其他语言不同。 但特殊情况如
boolean b =false;
if(b=true)
System.out.println("true");
工作正常。
因为 b = true 计算为布尔值。