, Scala . , Java 8 Scala 2.11 , , .
, Scala (duh!). , Java, .
, , -parameters Java 8, Scala 2.11. , Scala 2.11, , ...
MyInterface.java, javac -parameters MyInterface.java
public interface MyInterface {
public int doSomething(int bar);
}
MyTrait.scala, scalac MyTrait.scala
class MyTrait {
def doSomething(bar: Int): Int
}
MethodParameterSpy, , Java 8 -parameter. Java, ( )
public abstract int MyInterface.doSomething(int)
: bar
Scala
public abstract int MyTrait.doSomething(int)
: arg0
, Scala . , Scala Java 8 - . , Java. x$1, x$2,... , , Java 8 arg0, arg1,... Scala, ( -parameters, MyInterface.java.)
( 2.11), , Java, - Java Scala. -
$ javac -parameters MyInterface.java
$ jar -cf MyInterface.jar MyInterface.class
$ scala -cp MyInterface.jar
scala> :pa
import java.lang.reflect._
Class.forName("MyInterface")
.getDeclaredMethods
.map(_.getParameters.map(_.getName))
res: Array[Array[String]] = Array(Array(bar))
, , -parameter ( arg0).
, , , , Java Scala, .isJava (: typeOf[MyInterface].decls.filter(_.isMethod).head.isJava), , .
Future
, Scala 2.12. , , 2.12 Java, -parameter, Java- Scala.
, ?