首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scodec -方法太大

scodec -方法太大
EN

Stack Overflow用户
提问于 2021-07-29 19:35:52
回答 1查看 44关注 0票数 0

有一个密封的特征DataTag及其子类型(86个case类)。将项目升级到scala 2.12、scodec-core 1.11.8和scodec-bits 1.1.27后,编译失败,出现以下错误

[error] Method too large: protocol/Payload/BasePacket$.tagCodec ()Lscodec/Codec;

此方法调用此错误:

implicit def tagCodec: Codec[DataTag] = Codec.coproduct[DataTag].auto

有没有其他方法可以生成包含大量子类型的编解码器?

我尝试使用“基于键的鉴别器”示例(https://github.com/scodec/scodec/blob/series/1.11.x/unitTests/src/test/scala/scodec/examples/CoproductsExample.scala),但结果是相同的。

附言:我在github(https://github.com/scodec/scodec/issues/324)上提出了一个问题,但还没有人回复。

EN

回答 1

Stack Overflow用户

发布于 2021-11-15 14:27:28

问题解决了。编解码器编写,通过.typecase(discriminator, codec)指定来自子类型сompanion对象的所有编解码器。这很难看,但很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68575180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档