簡體   English   中英

在Java中使用Scala對象

[英]Using Scala object in Java

我正在使用用Scala編寫的Reactive RabbitMQ庫。

我遇到了這個構造:

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

如果他們想訪問接受DeliveryMode的功能,例如

public Message(DeliveryMode mode) {}

他們只是通過Scala

Message(Persistent);

可以在Java中使用這種類型嗎?

該代碼在Java中,所以我看不到混亂在哪里。 當然,它可以像您期望的那樣在Java中工作。 Persistent $類實現了DeliveryMode,它具有一個稱為MODULE $的靜態實例。

Message(Persistent$.MODULE$);

假設已正確導入Persistent $。

您顯示的代碼是Java。 如果您牢記哪個Scala概念映射到哪個Java概念,則Scala和Java通常是可互操作的。 因此答案是肯定的,您可以使用Java中的Scala對象。

例如看

http://docs.scala-lang.org/tutorials/scala-for-java-programmers.html

http://lampwww.epfl.ch/~michelou/scala/using-scala-from-java.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM