You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
using 2.7.4-final, i cannot implement an abstract java method with optional arguments. the compiler says it's all fine and compiles without errors, but the program doesn't run.
ABaseJavaClass.java---------------------
package com.razie.learnscala;
public abstract class ABaseJavaClass {
public abstract void takesOptionalArgs (String...args);
public abstract void takesMoreOptionalArgs (String...args);
}
object LearnScala extends Application {
val cc : ABaseJavaClass = (new AScalaExtension)
cc.takesOptionalArgs ("itsi", "bitsi", "spider")
}
- runtime output:
Exception in thread "main" java.lang.AbstractMethodError: com.razie.learnscala.ABaseJavaClass.takesOptionalArgs([Ljava/lang/String;)V
at com.razie.learnscala.LearnScala$$.(LearnScala.scala:7)
at com.razie.learnscala.LearnScala$$.(LearnScala.scala)
at com.razie.learnscala.LearnScala.main(LearnScala.scala)
using 2.7.4-final, i cannot implement an abstract java method with optional arguments. the compiler says it's all fine and compiles without errors, but the program doesn't run.
ABaseJavaClass.java---------------------
package com.razie.learnscala;
public abstract class ABaseJavaClass {
public abstract void takesOptionalArgs (String...args);
public abstract void takesMoreOptionalArgs (String...args);
}
AScalaExtension.scala--------------------
class AScalaExtension extends ABaseJavaClass {
override def takesOptionalArgs (x:String*) = {
java.lang.System.out.printf ("Java printf: %s %s %s", x:_*)
}
}
object LearnScala extends Application {
val cc : ABaseJavaClass = (new AScalaExtension)
cc.takesOptionalArgs ("itsi", "bitsi", "spider")
}
Exception in thread "main" java.lang.AbstractMethodError: com.razie.learnscala.ABaseJavaClass.takesOptionalArgs([Ljava/lang/String;)V
at com.razie.learnscala.LearnScala$$.(LearnScala.scala:7)
at com.razie.learnscala.LearnScala$$.(LearnScala.scala)
at com.razie.learnscala.LearnScala.main(LearnScala.scala)
expected output:------------
Java printf: itsi bitsi spider
---------------------additional info
the method signatures in the .class files are different. the scala version takes a (Lscala/Seq;) while the java version takes ([Ljava/lang/String;)
The text was updated successfully, but these errors were encountered: