创建一个新变量,并检查是否为空

时间:2019-09-09 10:52:11

标签: java

我可以做这样的事情吗?

if(variable = class.GetVariable() != null){
    variable.doSomething()
}

正如我在评论中所说,我正在使用HttpSession进行此操作,因此我的目标是检查会话中是否存在具有特定名称的参数,并且是否正在执行某些操作。

3 个答案:

答案 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();
}