You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:33:13