首页 > 解决方案 > 如何在 Apache Flink 中注册 java.util.List 类型

问题描述

是否可以使用Environment#registerTypeforjava.util.List或其他集合类型?如果我做:

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

env.getConfig().disableGenericTypes();
env.registerType(List.class);

我仍然得到Generic types have been disabled in the ExecutionConfig and type java.util.List is treated as a generic type.

我真正想做的,但在 Java 中是不可能的,因为类型擦除是:

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

env.getConfig().disableGenericTypes();
env.registerType(List<MyClass>.class);

不幸的是,我在文档中或使用搜索引擎没有找到解决方案。

标签: javaapache-flinkflink-streaming

解决方案


像这样的工具怎么List<T>

class MyClassList implements List<MyClass> {
...
}

然后你可以 registerType Type MyClassListwith specifictMyClass


推荐阅读