Zauważyłem, że wystąpił błąd AbstractMethodError po wykonaniu następujących kodów.AbstractMethodError wystąpił, gdy metoda prywatna pakiet przesłania
package javapkg;
public abstract class JavaClass{
abstract String foo(int b);
public String bar(int b){
return foo(b);
}
}
package scalapkg
import javapkg._
class ScalaClass extends JavaClass{
def foo(a:Int) = a.toString
}
object Main extends App{
println(new ScalaClass().bar(10))
}
[error] (run-main) java.lang.AbstractMethodError: javapkg.JavaClass.foo(I)Ljava/lang/String;
java.lang.AbstractMethodError: javapkg.JavaClass.foo(I)Ljava/lang/String;
at javapkg.JavaClass.bar(JavaClass.java:7)
at scalapkg.Main$delayedInit$body.apply(ScalaClass.scala:10)
at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:60)
at scala.App$$anonfun$main$1.apply(App.scala:60)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:76)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30)
at scala.App$class.main(App.scala:60)
at scalapkg.Main$.main(ScalaClass.scala:9)
at scalapkg.Main.main(ScalaClass.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
java.lang.RuntimeException: Nonzero exit code: 1
at scala.sys.package$.error(package.scala:27)
Jest to błąd lub specyfikacja?
P.S. Scala w wersji 2.9.2, 2.10.0-M3 i 2.10.0-SNAPSHOT (2.10.0-20120507-163905-843ac9520c) wystąpił ten sam błąd:
Chcę wiedzieć, że ten problem został zarejestrowany na stronie https://issues.scala-lang.org/, jeśli jest to błąd. –