当前位置: 首页 > 知识库问答 >
问题:

如何从Java8 lambda创建Runnable[重复]

东门秦迟
2023-03-14
public class LambdaTest {

    private final Lock lock = new ReentrantLock();

    @Test
    public void createRunnableFromLambda() {
        Locker.runLocked(lock, () -> {
            System.out.println("hello world");
        });
    }

    public static class Locker {
        public static void runLocked(Lock lock, Runnable block) {
            lock.lock();
            try {
                block.run();
            } finally {
                lock.unlock();
            }
        }
    }
}

共有1个答案

邢雨华
2023-03-14

Lambda可以用于任何需要功能接口的地方。函数接口是具有单个抽象方法的任何接口。

本例中使用的lambda语法是(arguments)->{blockOfCodeOrExpression}。在单个参数的情况下可以省略括号,在单个命令或表达式的情况下可以省略大括号。

换句话说,()->system.out.println(“Hello World”);是等价的*在这里,runnable

 new Runnable(){      
   @Override
   public void run(){
     System.out.println("Hello world one!");
   }
 };
 类似资料:
  • 问题内容: 尽管有一些阅读,但我遇到了一些我仍难以理解的代码。调用了一个方法,该方法需要两个参数,其中一个是Runnable。尽管有一个lambda,但没有传递Runnable对象。 例如: 所以我的问题是,你能解释一下如何从lambda创建一个Runnable吗,也请有人解释一下语法 () -> {}。具体来说,()括号是什么意思? 谢谢。 问题答案: Lambda可以在需要功能接口的任何地方使

  • 问题内容: 这个问题已经在这里有了答案 : 自动创建requirements.txt (8个答案) 2年前关闭。 我想知道如何为我的Python 3应用程序创建合适的requirements.txt? 问题答案: 在命令提示符下键入以下行

  • 我已经创建了报告(report1.jrxml)复制了它(report1.jasper),我只想用这个列表的信息来填充它:

  • 问题内容: 我正在看一个问题:从SQLite表获取随机值,这使我想知道是否可以使用SQL复制记录。更具体地说,有没有一种可以转换这些记录的构造: 进入: 后者中的和记录的计数与前一组记录中的对应值匹配。 可以用SQL完成吗?如果是这样,怎么办? 编辑: Lucero问什么SQL方言?任何真的,但理想情况下,最不可知论的方法都是最好的。 另一个编辑: 是否可以在sqlite中的单个SQL语句中完成?

  • 我目前正在开发一个使用Cassandra/Solr的项目,其中包含Java CRUD层。SolrJ(至少是我们使用的版本)不能很好地映射Cassandra UUID或TimeUUID字段,所以我看到的建议是将UUID视为POJO中的字符串,然后让getter和setter处理输入和输出转换。 多谢!

  • 问题内容: 目前,每当我需要从数组创建流时,我都会 有一些直接的方法可以从数组创建流吗? 问题答案: 您可以使用Arrays.stream Eg 您也可以使用@fge所提到的,它看起来像 但是note 将返回,而如果您传递一个type数组,则将返回。因此,简而言之,您可以观察两种方法之间的区别,例如 将原始数组传递给时,将调用以下代码 当您将原始数组传递给以下代码时,将被调用 因此,您得到不同的结