【发布时间】:2020-07-29 14:19:30
【问题描述】:
用例:对于配置类,我需要使用翻译类。
我有 3 个配置类(A、B、C)和 3 个翻译类(X、Y、Z)。
A 是父配置类, (B,C) 是子类。同样,X 是父翻译器类,(Y,Z) 是子类。
翻译器 Y 翻译 B,翻译器 Z 翻译 C 即 (B -> Y, C -> Z)
现在,我收到一个字符串输入(用于配置类),我使用 jackson 将其反序列化为配置类 A 的类型。对于 Jackson,我已经提到了 subTypes,Jackson 能够将其反序列化为所需的子类型 B 或 C正确。
A a = new ObjectMapper().readValue(inputString, A.class)
现在,我想做类似的事情:
if(a.type == 'B') Y.process((B)a) // Since translator Y was for B subClass
if(a.type == 'C') Z.process((C)c)// Since translator Z was for C subClass
有没有办法,我可以在这里避免类型转换。
【问题讨论】:
标签: java inheritance design-patterns casting jackson