hi, 感谢你的回复。
报错是在 getValue 的时候。 at GroupAggsHandler$439.getValue(Unknown Source) at org.apache.flink.table.runtime.operators.aggregate.GroupAggFunction.processElement(GroupAggFunction.java:146) 我的疑问是使用一个 Class 包装下 ListView 就能正常工作,而直接使用 ListView 是会报错。 比如使用 AggregateFunction<String, MyAccumulator> 就正常,而使用 AggregateFunction<String, ListView<String>> 就会 NPE。 我怀疑使用 ListView 时,无法正常获得 TypeInference。 Zhiwen Sun On Wed, Sep 7, 2022 at 11:46 PM Xuyang <xyzhong...@163.com> wrote: > Hi, > 理论上来说,在你的case中,会先通过createAccumulator方法创建一个ListView作为acc,然后,每一个输入的row都会触发accumulate方法,将数据更新到刚才的acc中,最终通过getValue方法拿到当前acc的值。 > > > > > 实际测试中的NPE发生在更新acc的时候还是getValue的时候呢?可以通过在这三个阶段设一下断点,分别看一下当前持有的acc是不是同一个对象 > > > > > -- > > Best! > Xuyang > > > > > > 在 2022-09-07 16:23:25,"Zhiwen Sun" <pens...@gmail.com> 写道: > > Hi, > 理论上来说,在你的case中,会先通过createAccumulator方法创建一个ListView作为acc,然后,每一个输入的row都会触发accumulate方法,将数据更新到刚才的acc中,最终通过getValue方法拿到当前acc的值。<br/><br/>实际测试中的NPE发生在更新acc的时候还是getValue的时候呢?可以通过在这三个阶段设一下断点,分别看一下当前持有的acc是不是同一个对象