在正确编写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");});