当你把范型设置为DataMessage就决定了调用父类的序列化方法只能传入类型是DataMessage的实例。
我想到的是三种解决办法:
1. 范型类还是DataMessage你需要通过反射拿到父类的序列化工具mapper来序列化element.getData()
2. 把序列化类改成Object,然后super.serialize
(((DataMessage)element).getData())
这两种方法都不够优雅
3. 范型类还是DataMessage,不调用父类方法,自己在子类构造一个序列化工具mapper可以直接从父类copy,然后mapper.serialize(element.getData())
【 在 YOUTH 的大作中提到: 】
:
: 如果调用super.serialize(element),我还搞个子类干啥,
: 我的目的就是只序列化其中的一个属性
:
: 我前面也解释了:
: 这个问题在于:
: 如果Java不支持泛型,serialize这个方法的传入参数应该是Object(因为万物皆可序列化的)。
: ..................
发自「今日水木 on iPhone 12」
--
FROM 124.64.18.*