如何为ScalaPb生成的密封特质添加指定注解?
为ScalaPb生成的密封特质添加注解的方法
你当前的配置是给外层SealedTrait消息类添加注解,所以注解会被自动放到生成的SealedTraitMessage类上,而非oneof对应的密封特质。要给密封特质加注解,需要针对oneof本身配置注解选项:
直接在oneof块内部添加(scalapb.oneof).annotations选项即可,示例配置如下:
message SealedTrait { oneof sealed_value { option (scalapb.oneof).annotations = "@zio.json.jsonDiscriminator(\"strategy\")"; A a = 1; B b = 2; } }
这样生成的代码中,sealed_value对应的密封特质就会带上你需要的@zio.json.jsonDiscriminator("strategy")注解。如果需要同时给外层的SealedTraitMessage类也加注解,可以保留原有的(scalapb.message).annotations选项,两者不会冲突。
内容的提问来源于stack exchange,提问作者Matroska
相关产品推荐
相关产品推荐

