前几天刚开始玩这个游戏,并花了几个小时尝试
@Category方法和其他方法,直到发现:您可以创建type属性
Splittable,该属性表示基础传输类型,该类型具有对booleans
/ Strings的某种编码/列表/地图。以我为例,我知道在设计时会通过某种包络类型,并且基于其他属性,其他字段可以是任意数量的其他autobean。
您甚至不需要在编译时就知道另一个bean的类型,可以使用
Splittable的方法获取值,但是无论如何如果使用autobeans,定义包装的数据是很好的。
interface Envelope { String getStatus(); String getDataType(); Splittable getData();}(如果您既要发送数据又要接收数据,则可能需要设置者-将bean编码为`Splittable以将其发送到信封中比将其解码更容易)
通过网络发送的JSON被解码(可能使用
AutoBeanCodex)成该
Envelope类型,并且在您确定必须从该
getData()方法中确定哪种类型后,调用类似这样的方法来获取嵌套对象
SpecificNestedBean bean = AutoBeanCodex.depre(factory, SpecificNestedBean.class, env.getData()).as();
的
Envelope类型和嵌套类型(在
factory上文)甚至不需要是相同的
AutoBeanFactory类型。这可以让您从通用传输实例中抽象出对信封的读取/写入,并对每个
dataType字符串属性使用特定的工厂来解码数据的模型(和嵌套模型)。



