2017-04-04 7 views
1

私はScalaで書かれたReactive RabbitMQライブラリを使用しています。 JavaでScalaオブジェクトを使用する

私は、この構造に出くわした:彼らは彼らは単に
Message(Persistent); 

できます。これをScalaの

に渡す DeliveryMode

public Message(DeliveryMode mode) {} 

のように受け入れて機能にアクセスしたい場合は

public interface DeliveryMode { } 

public final class Persistent { 
    public static String toString() { 
     return Persistent$.MODULE$.toString(); 
    } 

    // Other static functions. 
} 

public final class Persistent$ implements DeliveryMode, Product, Serializable { 
    public static final Persistent$ MODULE$; 

    static { 
     new Persistent$(); 
    } 

    // Other code 
    public String toString() { 
     return "Persistent"; 
    } 

    private Persistent$() { 
     MODULE$ = this; 
     class.$init$(this); 
    } 
} 

Javaでも型を使用できますか?

答えて

4

、インスタンスのためのコードを参照してくださいは、Javaである混乱がどこにあるので、私は表示されません。もちろん、それはあなたが期待しているようにJavaから動作します。 Persistent $ implements DeliveryModeクラスには、MODULE $という静的インスタンスがあります。

Message(Persistent$.MODULE$); 

永続的な$が適切にインポートされていると仮定します。

+0

私はOPが '$'と混同されると思いますか?これはクラス名と変数名のための正当な文字です。 –

関連する問題