gpt4 book ai didi

scala - 密封特性中的方法在类文件中给出重复的字段名称和签名

转载 作者:行者123 更新时间:2023-12-02 03:11:33 24 4
gpt4 key购买 nike

当我在 IntList 上添加 process() 时,它给出了一个运行时“Duplicate field name&signature in class file Cons$3...”。只有在函数内部定义了 sealed trait 时才会发生这种情况。

scala>   def t4() = {
|
| sealed trait IntList {
| def process (baseCase: Int, f: (Int, Int) => Int): Int =
| this match {
| case End => baseCase
| case Cons(hd, tl) => f( hd, tl.process(baseCase, f))
| }
|
| }
|
| final case object End extends IntList
|
| final case class Cons ( hd: Int, tl: IntList) extends IntList
|
| val l1: IntList = Cons(1, Cons(3, Cons(5, End)))
| }
t4: ()Unit

scala> t4()
java.lang.ClassFormatError: Duplicate field name&signature in class file Cons$3
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at scala.reflect.internal.util.AbstractFileClassLoader.findClass(AbstractFileC
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at Cons$4$.apply(<console>:24)
at .t4(<console>:26)
... 32 elided

最佳答案

证明是一个已知问题。在这里追踪:https://issues.scala-lang.org/browse/SI-5252

关于scala - 密封特性中的方法在类文件中给出重复的字段名称和签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39635543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com