代码之家  ›  专栏  ›  技术社区  ›  Aliuk

lambda()->{}在Java中的意义

  •  25
  • Aliuk  · 技术社区  · 7 年前

    下面是堆栈溢出的答案: How to change Spring's @Scheduled fixedDelay at runtime

    schedulerFuture = taskScheduler.schedule(() -> { }, this);
    

    我想知道兰姆达 () -> {} 在那个密码里是什么意思。我需要在不使用lambdas的情况下编写它。

    4 回复  |  直到 7 年前
        1
  •  43
  •   dun dsch    7 年前

    它是一个 Runnable 一个空的 run 定义。此的匿名类表示形式为:

    new Runnable() {
         @Override public void run() {
              // could have done something here
         }
    }
    
        2
  •  2
  •   Prashant Goswami    7 年前

    让我们看看这个例子。

    (int a, int b) -> {return a > b}

    schedulerFuture = taskScheduler.schedule(new Runnable() {
         @Override 
         public void run() {
            // task details
         }
    }, this);
    
        3
  •  1
  •   Deltharis    7 年前

    对于lambdas:

    左边是论点,你拿什么。封闭在 ()

    -> 指示它是一个函数,它获取左侧的内容并将其传递到右侧进行处理

    右侧是身体-lambda做什么。封闭在 {} 就是这个函数所做的一切

    在您弄清楚之后,您只需要知道构造传递了匹配类的实例(看看 schedule() 调用),它是唯一一个与我们刚才分析的lambda表达式完全相同的方法。

        4
  •  0
  •   LittleBobbyTables - Au Revoir    6 年前

    Lambda表达式基本上表示函数接口的实例。 在某种程度上,Lambda表达式将是:(Lambda operator params)->{body}

    ()->系统输出打印(“这意味着Lambda表达式不接受任何参数”);

    (p) ->系统输出打印(“带一个参数的Lambda表达式:”+p);