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

如何在Java中使用Scala单例对象?

狄旭
2023-03-14
问题内容

我有一个Scala对象,需要在Java类中使用。

这是Scala对象

object Person {
  val MALE = "m"
  val FEMALE = "f"
}

如何在Java中使用此Scala对象?

到目前为止,我已经尝试了以下操作,但未成功(编译错误):

  • Person.MALE() //返回一个没有用的字符串,因为我想要实际的Person对象

问题答案:

编辑 :一个工作示例(我检查过,它可以编译并工作):Scala:

object Person {
  val MALE = "m";
}

Java对应项:

public class Test {
    Person$ myvar = Person$.MODULE$;

    public static void main(String argv[]) {
        System.out.println(new Test().myvar.MALE());
    }
}


 类似资料:
  • 我试图模拟Scala单例对象。特别是,我需要模拟对象在服务组件(测试中的类)中使用。使用Mockito这是不可能的,测试执行会以以下方式失败: 在这里阅读,Scalamock似乎允许这样做: 要模拟独立的单例对象,请使用。 我的服务组件是这样的: 我的build.sbt有所有这些依赖关系: 但是我找不到这个: 也许这也可以使用EasyMock和PowerMock实现,但我找不到任何Scala示例代

  • 问题内容: 我正在尝试使用字符串方法。但是,如果我将%1,%2等放置在字符串中,则会抛出java.util.UnknownFormatConversionException,指向一个令人困惑的Java源代码片段: 从中我了解到 char是被禁止的。如果是这样,那么我应该对参数占位符使用什么? 我使用Scala 2.8。 问题答案: 尽管所有先前的回答都是正确的,但它们都是Java语言。这是一个Sc

  • 问题内容: 我有以下代码: 如您所见,期望使用lambda表达式。 现在,我正在使用Java库,但是该应用程序是用Scala编写的。如何将Scala lambda传递给Java代码? 我尝试了以下方法: 但是编译器抱怨: 问题答案: 错误消息列出了支持的参数类型。其中之一是: 从错误消息中,您可以看到您提供了以下类型: 根据Kafka 1 javadoc (在Kafka 1.1中不存在),定义为:

  • 问题内容: 我想从Java方法返回对Scala对象的引用。我怎样才能做到这一点? 我的Scala对象是这样的: …并且我希望我的Java方法像这样: 有没有办法做到这一点? 问题答案: 应该管用。 编辑:之所以可行,是因为这是Scala表示单例对象的方式。该类中有一个名为的字段,其中填充有该类的单个有效实例。但是还有一个叫做的类,它将所有方法复制为静态方法。这样一来,您就可以在大多数情况下像Jav

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

  • 问题内容: 如何引用一个Java包,其中包含名称如Scala中的com.example.object的对象? Scala将对象视为保留字并抱怨。 问题答案: 将保留字放在反引号中,如下所示: