在正确编写Lambda Consumer时,我在Java中遇到问题。消费者应该工作,以便如果对象Teos为null或方法getNimi返回“”,则它将setNimi的名称更改为“ nimi ei tiedossa”。这是家庭作业,因此我应该将Lambda作为参数而不是在方法本身中编写。

kokoelma.muuta(teos -> {
       if (teos.getNimi().equals("") || teos.getNimi() != null) {
          teos.setNimi("nimi ei tiedossa")
       }
   };
);


if语句应如何编写?

NetBeans错误消息说;预期,)预期的和非法的表达开始,但我找不到的正确位置;和)。

提前致谢。

最佳答案

尝试将其扩展。

kokoelma.muuta(teos -> {if (teos.getNimi().equals("") || teos.getNimi() != null) teos.setNimi("nimi ei tiedossa")};);


变成:

kokoelma.muuta(teos -> {
    if (teos.getNimi().equals("") || teos.getNimi() != null)
        teos.setNimi("nimi ei tiedossa")
};
);


从这里可以明显看出,分号应该在语句之后,而在lambda之后不应该使用分号:

kokoelma.muuta(teos -> {
    if (teos.getNimi().equals("") || teos.getNimi() != null)
        teos.setNimi("nimi ei tiedossa");
}
);


或者,再次缩短:

kokoelma.muuta(teos -> { if (teos.getNimi().equals("") || teos.getNimi() != null) teos.setNimi("nimi ei tiedossa");});

07-24 09:38
查看更多