从Scala访问Java类的静态内部类

从Scala访问Java类的静态内部类,java,scala,static,Java,Scala,Static,我在Scala中使用了一个Java类。我可以实例化这个类,但是我不知道如何在Scala的外部类中实例化一个公共静态类。有人能给我指出答案吗 (我读过很多关于如何在Scala代码中使用“静态”成员的帖子。这不是我要找的。)在我的例子中,类似的方法是: Java类 package test.java; public class Test { public static class TestInner {} } Scala类 package test.scala import test.

我在Scala中使用了一个Java类。我可以实例化这个类,但是我不知道如何在Scala的外部类中实例化一个
公共静态
类。有人能给我指出答案吗


(我读过很多关于如何在Scala代码中使用“静态”成员的帖子。这不是我要找的。)

在我的例子中,类似的方法是:

  • Java类

    package test.java;
    
    public class Test {
      public static class TestInner {}
    }
    
  • Scala类

    package test.scala
    
    import test.java.Test
    
    object Main {
    
      def main(args: Array[String]): Unit = {
        new Test.TestInner()
      }
    }
    

根据定义,Java中没有“静态内部类”这样的东西:“static关键字可以修改非内部类或接口T主体中成员类型C的声明。其效果是声明C不是内部类。”以及“内部类是一个嵌套类,它不是显式或隐式声明为静态的。”这与在Java中引用静态嵌套类的方式相同。但是,将静态嵌套类命名为TestInner是一个错误,因为这错误地暗示了维护人员该类是一个内部类。在语言/JVM级别上,可能没有类似“内部静态类”的东西,但是从概念上讲,
static
create排序命名空间-因此,
testiner
位于由
Test
创建的命名空间的内部(尽管可以从外部访问)。我想这就是作者的意思和想要了解的。当使用Java时,最好使用适用于Java的术语。“在[语言]层面上”是很重要的,因为它是您所谈论的语言。但这里我们讨论的是Scala语言,它首先没有任何静态概念,因此,提出问题的人不应该仅仅为了提出问题和理解解决方案而被迫阅读Java规范。
testiner
的示例不是被声明为“Java类”吗?