加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala对象MODULE $

发布时间:2020-12-16 09:59:18 所属栏目:安全 来源:网络整理
导读:Scala对象MODULE $的目的是什么? 以下Scala对象: object TestScalaObject { val TEST_SYMBOL = "*" def testMethod(x : String) : String = x} 编译成两个字节码文件TestScalaObject.class和TestScalaObject $.class,如果我反汇编以获得我得到的等效Java代
Scala对象MODULE $的目的是什么?

以下Scala对象:

object TestScalaObject {
 val TEST_SYMBOL = "*"
 def testMethod(x : String) : String = x
}

编译成两个字节码文件TestScalaObject.class和TestScalaObject $.class,如果我反汇编以获得我得到的等效Java代码:

TestScalaObject.class:

public final class TestScalaObject extends java.lang.Object{
    public static final java.lang.String testMethod(java.lang.String);
    public static final java.lang.String TEST_SYMBOL();
}

TestScalaObject $的.class:

public final class TestScalaObject$extends java.lang.Object implements scala.ScalaObject{
    public static final TestScalaObject$MODULE$;
    public static {};
    public java.lang.String TEST_SYMBOL();
    public java.lang.String testMethod(java.lang.String);
}

我可以看到一个公共的静态最终TestScalaObject $.MODULE $但如果我可以通过TestScalaObject.TEST_SYMBOL和TestScalaObject.testMethod()访问我需要的所有内容,如果我想从Java那样做的话

解决方法

MODULE $拥有实例化类的实例.请参阅Java中的Singleton模式.我不知道它有什么好的来源,所以这里是 Singleton的维基百科条目.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读