- `T deserialize(byte[] message)` is widely used and it is a public api. It is very friendly for single record deserializers. - `void deserialize(byte[] message, Collector<T> out)` supports multiple records.
I think we can just keep them as they are. Best, Jingsong On Tue, Feb 28, 2023 at 3:08 PM Hang Ruan <ruanhang1...@gmail.com> wrote: > > Hi, Shammon, > > I think the method `void deserialize(byte[] message, Collector<T> out)` > with a default implementation encapsulate how to deal with null for > developers. If we remove the `T deserialize(byte[] message)`, the > developers have to remember to handle null. Maybe we will get duplicate > code among them. > And I find there are only 5 implementations override the method `void > deserialize(byte[] message, Collector<T> out)`. Other implementations reuse > the same code to handle null. > I don't know the benefits of removing this method. Looking forward to other > people's opinions. > > Best, > Hang > > > > Shammon FY <zjur...@gmail.com> 于2023年2月28日周二 14:14写道: > > > Hi devs > > > > Currently there are two deserialization methods in `DeserializationSchema` > > 1. `T deserialize(byte[] message)`, only deserialize one record from > > binary, if there is no record it should return null. > > 2. `void deserialize(byte[] message, Collector<T> out)`, supports > > deserializing none, one or multiple records gracefully, it can completely > > replace method `T deserialize(byte[] message)`. > > > > The deserialization logic in the above two methods is basically coincident, > > we recommend users use the second method to deserialize data. To improve > > code maintainability, I'd like to mark the first function as `@Deprecated`, > > and remove it when it is no longer used in the future. > > > > I have created an issue[1] to track it, looking forward to your feedback, > > thanks > > > > [1] https://issues.apache.org/jira/browse/FLINK-31251 > > > > > > Best, > > Shammon > >