java使用lamda表达式,出现类型无法自动识别到报一下异常
在这Exception in thread "main" org.apache.flink.api.common.functions.InvalidTypesException: The return type of function 'main(XXX.java:28)' could not be determined automatically, due to type erasure. You can give type information hints by using the returns(...) method on the result of the transformation call, or by letting your function implement the 'ResultTypeQueryable' interface.
at org.apache.flink.api.dag.Transformation.getOutputType(Transformation.java:484)
at org.apache.flink.streaming.api.datastream.DataStream.getType(DataStream.java:190)
at org.apache.flink.streaming.api.datastream.DataStream.keyBy(DataStream.java:339)里插入代码片
解决方案;
SingleOutputStreamOperator<WorldValueDesc> flatMap = streamSouce.flatMap((FlatMapFunction<String, WorldValueDesc>) (s, collector) -> {
String[] str = s.split(",");
for (String value : str) {
collector.collect(new WorldValueDesc(value, 1));
}
}) // 显示指定匿名函数的返回类型
.returns(TypeInformation.of(new TypeHint<WorldValueDesc>() {
@Override
public TypeInformation<WorldValueDesc> getTypeInfo() {
return super.getTypeInfo();
}
```java