我不打算合并两个宏注释。它编译得非常好,但是尝试使用同伴对象上的任何方法
java.lang.NoClassDefFoundError: Test$如果单独使用,则宏注释可以正常工作。
@JsonCodec:
import io.circe.generic.JsonCodec
@JsonCodec
case class Test(a: Int)
println(Test.decodeTest.hashCode())
>> 161960012@透镜
import monocle.macros.Lenses
@Lenses("_")
case class Test(a: Int)
println(Test._a.hashCode())
>> 1685232414但如果我试着把它结合起来
import io.circe.generic.JsonCodec
import monocle.macros.Lenses
@Lenses("_")
@JsonCodec
case class Test(a: Int)
>> Done compiling.
>> [E] Exception in thread "main" java.lang.NoClassDefFoundError: Test$
>> [E] at Main$.main(Main.scala:39)
>> [E] at Main.main(Main.scala)
>> [E] Caused by: java.lang.ClassNotFoundException: Test$
>> [E] at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>> [E] at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>> [E] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
>> [E] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>> [E] ... 2 more它将在运行时失败。
有什么方法可以解决这个问题,还是仅仅是限制了宏注释的使用?
UPD:定义配套的对象解决方案是可行的。
import io.circe.generic.JsonCodec
import monocle.macros.Lenses
@JsonCodec @Lenses("_") case class Test(a: Int)
object Test发布于 2018-10-25 09:26:14
看起来像宏注释限制。伙伴对象解决方案
@JsonCodec @Lenses("_") case class Test(a: Int)
object Testhttps://stackoverflow.com/questions/52982928
复制相似问题