簡體   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