我可以在Java中的lambda表达式中放入if语句吗?

我可以在Java中的lambda表达式中放入if语句吗?,java,swing,lambda,Java,Swing,Lambda,更具体地说,我所说的是JavaSwing,您将使用lambda表达式添加ActionListener combobox.addActionListener( event -> {if (boolean) runMethod()}); 我已经试着按照编写的方式编译,但它不起作用,所以我想知道这样的逻辑流是不允许的,还是我只需要重写一些东西 combobox.addActionListener( event -> {if (boolean) runMethod();})

更具体地说,我所说的是JavaSwing,您将使用lambda表达式添加ActionListener

combobox.addActionListener(
    event -> {if (boolean) runMethod()});
我已经试着按照编写的方式编译,但它不起作用,所以我想知道这样的逻辑流是不允许的,还是我只需要重写一些东西

combobox.addActionListener(
    event -> {if (boolean) runMethod();});

缺少分号。

请在
runMethod()
之后添加分号,然后重试。在
{}
内部是一个需要它们的代码块。按照@zapl所说的做,并且在
if
后面的括号中需要一个实际的
布尔值
变量/表达式,而不是关键字。另外,您使用的是什么IDE?如果您在Eclipse或NetBeans中有此代码,它将显示一条警告,提示您插入
以完成该语句。我建议使用现代的IDE,这样可以省去很多麻烦。就我个人而言,我所有的if语句都使用大括号,即使是不需要大括号的一行代码。我将把
if(boolean){
放在一行,把
runMethod()
放在下一行,然后把结束符
}
放在下一行。我只是觉得它更干净。不过这只是偏好而已。有些人更喜欢少排几行。大多数时候我都是这样格式化的