就像这样:
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();
}
...
}
clazz, rowfield, datatype, ass