[英]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.