我可以做这样的事情吗?
if(variable = class.GetVariable() != null){
variable.doSomething()
}
正如我在评论中所说,我正在使用HttpSession进行此操作,因此我的目标是检查会话中是否存在具有特定名称的参数,并且是否正在执行某些操作。
答案 0 :(得分:2)
只要已定义variable
并添加其他方括号,就可以:
Foo variable;
if ((variable = GetVariable()) != null) {
variable.doSomething();
}
您通常不会经常看到这种模式,因为它不是最易读,但是在逐行从BufferedReader
读取时经常会看到它(因为它提供了一种方便,快捷的方法读取行直到没有行的方式):
String line;
while((line=reader.readLine())!=null) {
//Process each line
}
答案 1 :(得分:1)
!=
的优先级高于=
,因此这里的代码意味着将class.GetVariable() != null
的布尔值分配给variable
变量:
if(variable = class.GetVariable() != null){
...
}
那不是你想要的。
因此,将()
之间的分配括起来以明确设置优先级:
String variable = null;
if( (variable = class.GetVariable()) != null){
variable.doSomething()
}
答案 2 :(得分:1)
只要先定义变量,是的,但是必须将其放在父项中
MyObject variable;
if( ( variable = class.GetVariable()) != null){
variable.doSomething();
}