小编典典

此语言级别不支持Lambda表达式

java

我有一个使用Spark的Java类。我需要从JavaRDD过滤出标头。这就是我要这样做的方式。

String first = data.first();
JavaRDD<String> filteredData = data.filter((String s) -> {return !s.contains(first);});

但是,此代码data.filter((String s) -> {return !s.contains(first);})无法编译。IntelliJ
IDE表示“此语言级别不支持Lambda表达式”。


阅读 345

收藏
2020-11-30

共1个答案

小编典典

您可以在Java 7上使用lambda,但涉及到一点点-
您必须使用Retrolambda之类的东西

同样,您也可以在没有lambda的情况下执行相同的操作。Lambda可以通过匿名类轻松表示,但是冗长得多。

final String first = data.first();
JavaRDD<String> filteredData = data.filter(new Function<String, Boolean>() {
  @Override public Boolean call(String s) {
    return !s.contains(first);
  }
});
2020-11-30