小编Geo*_*iki的帖子

使用Java中的包对象中定义的Scala类

以下Scala示例定义了包对象中的类:

package com.mycompany

package object test {
  class MyTest {
    def foo(): Int = {
      42
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

生成以下三个类:

com/mycompany/test/package.class
com/mycompany/test/package$.class
com/mycompany/test/package$MyTest.class
Run Code Online (Sandbox Code Playgroud)

尝试使用MyTestJava中的类时出现问题.我认为,由于package$MyTest名称中包含$,因此Java不承认它的存在.然而,package$课程是可访问的.

javappackage$MyTest.class退货时运行:

Compiled from "Test.scala"
public class com.mycompany.test.package$MyTest {
  public int foo();
  public com.mycompany.test.package$MyTest();
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用Eclipse,Intellij和Netbeans访问该类,但没有成功.是否可以使用Java中的包对象中定义的Scala类?

interop scala object package

6
推荐指数
1
解决办法
2094
查看次数

标签 统计

interop ×1

object ×1

package ×1

scala ×1