如何将给定 Java 基本类型的 Class 对象转换为 Flink 的 DataType ? 就像这样:
public static RowType convertToDataType(Class<?> pojo) {
...
}
Field[] fields = pojo.getDeclaredFields();
for (Field field : fields) {
if (Modifier.isStatic(field.getModifiers())) {
continue;
}
String fieldName = field.getName();
DataType fieldType = convertToDataType(field.getType());
RowType.RowField rowField = new RowType.RowField(fieldName, fieldType.getLogicalType());
rowFields.add(rowField);
}
我在 Flink 的内置函数中,没有找到用于转换的方法。 这种情况只能自己写方法吗?类似:
private static DataType convertToDataType(Class<?> clazz) {
if (clazz == CharSequence.class) {
return DataTypes.STRING();
}
if (clazz == String.class) {
return DataTypes.STRING();
}
if (clazz == int.class || clazz == Integer.class) {
return DataTypes.INT();
}
...
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.