在自定义函数中使用DataTypeHint("Row<t ARRAY<INT>>")时报错,错误内容为:
Caused by: java.lang.ClassCastException: class [I cannot be cast to class [Ljava.lang.Object; ([I and [Ljava.lang.Object; are in module java.base of loader 'bootstrap') \tat org.apache.flink.table.data.conversion.ArrayObjectArrayConverter.toInternal(ArrayObjectArrayConverter.java:40) \tat org.apache.flink.table.data.conversion.DataStructureConverter.toInternalOrNull(DataStructureConverter.java:61) \tat org.apache.flink.table.data.conversion.RowRowConverter.toInternal(RowRowConverter.java:75) \tat org.apache.flink.table.data.conversion.RowRowConverter.toInternal(RowRowConverter.java:37) \tat org.apache.flink.table.data.conversion.DataStructureConverter.toInternalOrNull(DataStructureConverter.java:61) \tat StreamExecCalc$251.processElement_split9(Unknown Source) \tat StreamExecCalc$251.processElement(Unknown Source) \tat org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.pushToOperator(CopyingChainingOutput.java:82) 函数内容如下: @DataTypeHint("Row<t ARRAY<INT>>") public Row eval() { int[] i = new int[3]; return Row.of(i); } 测试其它简单类型时就不会报这个错,所以不是环境问题。