6
Я хотел бы знать, как я мог бы вставить статическое поле из класса Java в Scala.Объект 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.
}
}
Но если я хочу расширяет ClassFromJava в Scala, и добавить некоторую постоянную величину, кажется, не работает.
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?
Так что мне нужно явно объявить все поля, которые я хочу использовать, и не мог их автоматически. Это правильно? –
Почему ClassFromJava.VERSION не отображается? – huynhjl
@Brian - вам нужно объявить их _if_, вы хотите использовать их как 'ClassFromScala.INHERITED_CONSTANT'. @huynhjl - 'ClassFromJava.VERSION' видна, но Брайан сказал, что он хотел, чтобы у ClassFromScala тоже была константа. –