【问题标题】:Using scala object inside java?在java中使用scala对象?
【发布时间】:2014-12-16 06:51:23
【问题描述】:

在我的 java 代码中,我从一个在 Scala 中定义的类调用一个方法,并且我想在 java 中使用它的一个方法。这是我的称呼,它工作正常。

Seq<SomeObjectType> variableName = ScalaClass.MethodInTheScalaClass(); 

我可以用这种形式在java中调用这个函数,但是由于我是从一个编译好的包中调用这个方法,所以我看不到它发生了什么(因此我不能改变它)。

现在的问题是,我不知道如何在 java 中迭代“variableName”(因为 Seq 是 scala 类型)。

如何迭代 variableName 或将其转换为 Java 对象(例如 List)?

【问题讨论】:

    标签: java scala loops type-conversion


    【解决方案1】:

    试试这个:

    java.util.List<SomeObjectType> res = 
      scala.collection.JavaConverters$.MODULE$.seqAsJavaListConverter(variableName).asJava();
    

    您可以在JavaConverters documentation 中获取转换器列表。

    您应该使用JavaConverters$.MODULE$Java 获取JavaConverters 对象。

    【讨论】:

    • 谢谢!所以,如果我只有 java(没有 scala),一切都应该可以正常工作;对吗?
    • @Daniel:你需要scala lib,但无论如何你都需要它才能使用ScalaClass。如果你有很多这样的scala 方法可以在java 代码中使用,我建议你使用scala 创建java 友好的ScalaClassJavaApi 包装器 - 你可以在任何使用scala-maven-plugin 的maven java 项目中使用scala .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多