Lambda完全没有做任何事情

Rie*_*ien 47 java lambda runnable java-8

我需要有一个Runnable没有做任何事情的函数接口的lambda表达式.我曾经有过一种方法

private void doNothing(){
    //Do nothing
}
Run Code Online (Sandbox Code Playgroud)

然后使用this::doNothing.但我发现了一个更短的方法来做到这一点.

Edd*_*dez 58

对于Runnable接口,你应该有类似的东西:

Runnable runnable = () -> {};
Run Code Online (Sandbox Code Playgroud)

哪里:

  • () 因为run方法没有收到args
  • {} 在这种情况下是空的运行方法的主体

之后,您可以调用该方法

runnable.run();
Run Code Online (Sandbox Code Playgroud)


Rie*_*ien 36

我现在使用的lambda表达式是:

() -> {}
Run Code Online (Sandbox Code Playgroud)


ema*_*l07 8

番石榴 -Runnables.doNothing();

  • 在我看来,它确实提高了可读性。您执行静态导入,在代码中您只会看到“doNothing()”。读者很快就会明白你故意决定“什么也不做”。Ofk 仅仅为此将 Guava 添加到类路径中将是一种浪费。 (10认同)
  • 包含 6 个字符表达式的库是疯狂的。即使您的依赖项中已经有 Guava,此解决方案也比简单表达式长,并且不会提高可读性。 (3认同)
  • 添加评论以表明您故意决定不采取任何行动。 (2认同)