2017-02-18 12 views
0

私はScalaで作業しているJavaクラスを持っています。クラスをインスタンス化することはできますが、Scalaから外部クラスの中でpublic staticクラスをインスタンス化する方法はわかりません。誰かが答えに私を向けることができますか?私の場合はScalaから、Javaクラスの静的内部クラスにアクセス

(私はScalaのコードで「静的」のメンバーを使用する方法と言う記事をたくさん読んだ私が探しているものをされていないこと。。)

+0

Javaの「静的な内部クラス」という定義はありません。「staticキーワードは、非内部クラスまたはインタフェースTの本体内のメンバータイプCの宣言を変更することができます。 Cが内部クラスではないことを宣言することです "と"内部クラスは、明示的にまたは暗黙的に静的に宣言されていないネストされたクラスです "。 –

答えて

0

のようなものが動作します。

  • 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() 
        } 
    } 
    
+0

これは、Javaで静的ネストされたクラスを参照する方法と同じです。しかし、クラスが内部クラスであることを管理者に誤って暗示しているので、静的ネストされたクラス 'TestInner'の名前を間違えてしまいます。 –

+0

言語/ JVMレベルでは、 "内部静的クラス"のようなものはないかもしれませんが、概念的に 'static'はsortの名前空間を作成します。' TestInner'は 'Test'によって作成された名前空間の内側です(ただし、それの外側から)。私はそれが作者が意味し、アクセスしたかったものだと思う。 –

+0

Javaを使用する場合は、Javaに適用される用語を使用することをお勧めします。あなたが話している言語では、「言語レベルで」重要です。 –

関連する問題