当前位置: 首页 > 面试题库 >

如何从Java访问scala包对象中包含的对象Foo?

申屠飞
2023-03-14
问题内容

如何Foo从Java访问scala包对象中包含的对象?

package object domain { object Foo }  domain$.MODULE$.Foo$.MODULE$ 

问题答案:

也许从Scala 2.8.1开始,这已经发生了变化,但是该提议domain$Foo$.MODULE$不起作用。您必须使用domain.package$Foo$.MODULE$

对于对象,方法等,它有所不同。考虑到scala类:

package object domain {
  object foo
  def bar = 42
  val baz = 1.0
}

您可以访问foo,bar而baz在Java中,如:

domain.package$foo$.MODULE$
domain.package$.MODULE$.bar()
domain.package$.MODULE$.baz()

当我试图弄清楚这一点时,我以为我们遇到了麻烦,因为Scala生成了一个名为的类package,当然您不能在Java中导入该类。幸运的是,我们只需要package$可以导入的伴随对象。



 类似资料:
  • 问题内容: 我试图将一些Scala代码注入到现有的Java应用程序中。(所以,话说回来,我想要更多的乐趣)。 我在Scala中创建一个单例的东西 现在,在OldJava.java中 我应该填写什么以便Java调用showMyPower方法?我尝试了两者 ,但没有任何效果。 (使用Jad反编译类文件,除了胡说八道之外,什么都没给我显示。) 编辑 我删除了声明,scala产生了预期的静态方法。(呼吁工

  • 问题内容: 我有一个JavaScript对象,看起来像这样: 我可以访问轻松使用或其他属性。但是,我无法正确访问的语法。我没有运气就尝试了以下方法: 问题答案: 使用ECMAscripts的“括号表示法”: 您可以以任何一种方式使用该表示法,即进行阅读和书写。

  • 问题内容: 看一下这个例子: 如何从子对象中访问随机对象? 问题答案: 让类将自己的实例传递给该类。 经典Occam剃刀。

  • 问题内容: 在使用Optional对象时,是否有一种有效的方法来执行向上转换。这是一个示例代码: (2.)给出错误。我可以通过创建另一个函数来解决。 但是有没有一种有效的方法,使得func2()可以用于(1.)和(2.)? 问题答案: 我会写一个像这样的方法: (如果您不喜欢这个名字,请在下面查看我对番石榴的评论) 就运行速度而言,这是非常有效的:强制转换在编译时被忽略: 因此,唯一的成本就是方法

  • 问题内容: 我有一个 DOM元素: 有两个ID 和的字段..。我可以访问,没有任何问题,但是由于名称中包含句点,导致语法错误而失败。 如何访问这些属性? 问题答案: 使用方括号表示法: 这适用于任何对象,对于非标识符安全的字符以及访问你可能提前都不知道的键特别有用。

  • 我使用jmap使用CMS GC转储应用程序的实时堆: 我用YourKit打开了这个转储,它发现8Gb堆的61%是不可访问的,特别是 我以为使用意味着它只包含可访问的对象? 总司令。应用程序的日志文件可疑地缺少由我调用jmap引起的任何完整GC,而是在我进行转储的两侧显示以下行: 在堆转储完成后第一次CMS重置后的第一个ParNew集合中,我看到堆的大小大致与堆转储中的大小相同(大约3-4Gb):