从 Java 8 中的方法返回 Lambda?

2022-09-01 03:00:23

我刚刚开始使用Java 8,我想知道是否有一种方法可以编写一个返回?Function

现在我有如下方法:

Function<Integer, String> getMyFunction() {
  return new Function<Integer, String>() {
    @Override public String apply(Integer integer) {
      return "Hello, world!"
    }
  } 
}

有没有办法在Java 8中更简洁地编写它?我希望这会起作用,但它没有:

Function<Integer, String> getMyFunction() {
  return (it) -> { return "Hello, world: " + it } 
}

答案 1

在函数定义中去掉 return 语句:

Function<Integer, String> getMyFunction() {
    return (it) -> "Hello, world: " + it;
}

答案 2

您缺少分号:

return (it) -> { return "Hello, world: " + it; };

尽管如前所述,它可以缩短为:

return it -> "Hello, world: " + it;

推荐