代码之家  ›  专栏  ›  技术社区  ›  Brian Hsu

Scala对象扩展Java类静态字段

  •  6
  • Brian Hsu  · 技术社区  · 14 年前

    我想知道如何在Scala中从Java类中固有静态字段。

    下面是一个Java示例,如果我是一个名为ClassFromJava的类,我可以扩展它,添加一些静态字段,并使用子类访问版本字段。

    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) 
        }
    }
    

    1 回复  |  直到 14 年前
        1
  •  4
  •   Rex Kerr    14 年前
    object ClassFromScala extends ClassFromJava {
      def VERSION = ClassFromJava.VERSION
    }