我正在用 Kotlin 编写 Flink 应用程序,并且数据类(以及其他 Kotlin 类)未被识别为有效的 POJO 类型。
Flink 文档指出,如果满足以下条件,则数据类型被识别为 POJO 类型(并允许“按名称”字段引用):
我在实现 Kotlin 数据类时收到以下信息,该数据类应满足上述条件才能被识别为 POJO:
[main] INFO org.apache.flink.api.java.typeutils.TypeExtractor -
Class class <Class> cannot be used as a POJO type because not all
fields are valid POJO fields, and must be processed as GenericType.
Please read the Flink documentation on "Data Types & Serialization"
for details of the effect on performance.
Run Code Online (Sandbox Code Playgroud)
进一步调查,我回顾了Flink的TypeExtractor.isValidPojoField方法@ https://github.com/apache/flink/blob/master/flink-core/src/main/java/org/apache/flink/api/java/typeutils/TypeExtractor .java
在一个单独的项目中,我在一个简单的 Kotlin 数据类上应用了 java.lang.reflect.Modifier 的字段检查,试图缩小问题范围。 …