我正在尝试运行这个程序: Flink CEP监控
1:在亚马逊的https://github.com/tillrohrmann/cep-monitoring上安装了openjdk1.8和Flink 1.0.2。但是,当我试图运行这个程序时,它会抛出以下异常:
缺少“Map”的泛型类型参数。您的编译器似乎没有将它们存储到.class文件中。目前,只有Eclipse编译器保存使用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程序吗?我如何解决这个错误??
发布于 2016-06-03 13:30:22
这是一个eclipse bug:#449063!
同时,我建议您在eclipse之外构建该项目。使用命令行中的"mvn干净安装“,然后您可能会从eclipse运行主类。
发布于 2016-07-12 08:48:03
默认情况下,Eclipse编译器不会将泛型类型信息存储在类文件中。您必须将JDT标志org.eclipse.jdt.core.compiler.codegen.lambda.genericSignature设置为generate。
您可以在Java 8编程指南中找到详细的描述。
https://stackoverflow.com/questions/37055302
复制相似问题