2

我正在尝试运行这个程序:[Flink CEP Monitoring][1]

[1]:https ://github.com/tillrohrmann/cep-monitoring在 Amazon EC2 上安装了 openjdk1.8 和 Flink 1.0.2。但是当我试图运行这个程序时,它会抛出以下异常:

缺少“地图”的泛型类型参数。您的编译器似乎没有将它们存储到 .class 文件中。目前,只有 Eclipse JDT 编译器保留了安全使用 lambdas 特性所需的类型信息。有关如何编译包含 lambda 表达式的作业的更多信息,请参阅文档。org.apache.flink.api.java.typeutils.TypeExtractor.validateLambdaGenericParameter(TypeExtractor.java:1316) org.apache.flink.api.java.typeutils.TypeExtractor.validateLambdaGenericParameters(TypeExtractor.java:1302) org.apache.flink。 api.java.typeutils.TypeExtractor.getUnaryOperatorReturnType(TypeExtractor.java:346) org.apache.flink.cep.PatternStream.select(PatternStream.java:64) org.stsffap.cep.monitoring.CEPMonitoring.main(CEPMonitoring.java: 95)

由于 Lambda 表达式,有什么方法可以用 Java 8 编译 Flink 程序吗?我该如何解决这个错误?

4

2 回答 2

0

默认情况下,Eclipse JDT 编译器不在类文件中存储泛型类型信息。您必须将 JDT 标志设置org.eclipse.jdt.core.compiler.codegen.lambda.genericSignaturegenerate.

您可以在Java 8 Programming Guide中找到详细说明。

于 2016-07-12T08:48:03.673 回答
0

This is a eclipse bug: #449063!

In the meantime I suggest you to build the project outside the eclipse. Use "mvn clean install" from your command line and then you will probably run the main class from your eclipse ide.

于 2016-06-03T13:30:22.380 回答