首页 > 解决方案 > Java用法,没用过,不知道怎么找相关资料

问题描述

在代码的第 19 行,Callable c = () -> {

符号 -> 是什么意思。它是如何应用的?我不知道该怎么称呼

我知道它应该是接口Callable方法的实现。如果是这样,这种总使用量有什么好处?

package com.example.executor;

import java.util.Date;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;

/**
 * @author gao peng
 * @date 2019/4/18 17:56
 */
public class ExecutorserviceDemo4 {
  public static void main(String[] args) {
    ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(2);
    // Callable implementation
    Callable<String> c = () -> {
      System.out.println("Executed at- " + new Date());
      return "Executing task";
    };
    System.out.println("Time before execution started- " + new Date());
    // scheduling tasks with callable as param to be
    // executed after a delay of 3 Secs
    ScheduledFuture<String> sf = scheduledExecutor.schedule(c, 3, TimeUnit.SECONDS);
    try {
      System.out.println("Value- " + sf.get());
    } catch (InterruptedException | ExecutionException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    scheduledExecutor.shutdown();
  }
}

标签: java

解决方案


是 Java 8 中引入的一项功能。如果您使用的是 Android Studio 3.0 或更高版本,它应该适合您。

该功能的名称是 Lambda 表达式,如果您打算使用它们,您应该查找并阅读它们。

您可以使用 -> 组合来使用它们。

如果你的 Android Studio 早于 3.0,你应该更新.. 或者使用一个名为 retrolambda 的库(你真的应该更新)

我已经从这个答案


推荐阅读