Я смущен тем, как Scala's Any
относится к java.lang.Object
. Я знаю, что в Скале, AnyRef
соответствует object
, но это, кажется, делает разницу ли этот метод (который принимает java.lang.Object
) определяется в классе Java или класс Scala):Scala: Передача любого метода, который принимает java.lang.Object
класс Java:
public class JavaClass {
public static void method(Object input) {
}
}
приложение Scala:
object ScalaObject extends App{
def method(input:java.lang.Object) = {}
val a:Any = null
method(a) // does not work
JavaClass.method(a) // does work
}
Так что, если этот метод в Java-класса, то компилятор позволяет мне передать переменную типа Any
, почему это?