繁体   English   中英

编解码器 - 方法太大

[英]scodec - Method too large

具有密封特征 DataTag 及其子类型(86 个案例类)。 将项目升级到 scala 2.12、codec-core 1.11.8 和 codec-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 ),但是结果是一样的。

PS:我在github( https://github.com/scodec/scodec/issues/324 )上发了一个问题,但是还没有人回答。

问题解决了。 编解码器编写,通过.typecase(discriminator, codec)指定来自子类型和对象的所有编.typecase(discriminator, codec) 这很丑陋,但有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM