6
我想知道如何从Scala中的Java类中内在静态字段。Scala对象扩展Java类静态字段
这里是一个Java示例,如果我是一个名为ClassFromJava的类,我可以扩展它,添加一些静态字段,并使用子类访问VERSION字段。
public class ClassFromJava {
public static int VERSION = 1;
}
public class ClassFromJavaSub extends ClassFromJava {
public static String NOTE = "A note";
}
public class Test {
public static void main (String [] args) {
System.out.println (ClassFromJavaSub.VERSION); // This works.
}
}
但是,如果我想在Scala中扩展ClassFromJava,并添加一些常量值,它似乎不起作用。
object ClassFromScala extends ClassFromJava {
val NOTE = "A Note"
}
object Test {
def main (args: Array[String]) {
// This line won't compile
// ClassFromScala has no value VERSION.
println (ClassFromScala.VERSION)
}
}
我应该怎么做,如果我想要ClassFromScala也有VERSION变量?
所以我需要显式声明我想要使用的所有字段,并且不能自动使用它们。这是正确的吗? – 2010-10-05 14:23:30
为什么ClassFromJava.VERSION不可见? – huynhjl 2010-10-05 14:29:31
@Brian - 你需要声明他们_if_你想使用他们作为'ClassFromScala.INHERITED_CONSTANT'。 @huynhjl - 'ClassFromJava.VERSION'是可见的,但Brian表示他希望'ClassFromScala'似乎也具有常量。 – 2010-10-05 15:41:23