我们可以在Java程序中编写Scala代码吗?

拉米

对不起这个基本问题,我已经有一个用Java编写的大型软件(我正在使用Eclipse Mars进行编辑),并且我想更改其中的某些类并使用Scala而不是Java,这可能吗?

TJ人群

scala-lang.org首页上

无缝Java互操作-Scala在JVM上运行,因此Java和Scala堆栈可以自由混合以实现完全无缝的集成。

如果单击它,它会为您提供更多信息:

无缝结合Scala和Java

Scala类最终是JVM类。您可以创建Java对象,调用它们的方法并从Scala透明地继承自Java类。同样,Java代码可以引用Scala类和对象。

在此示例中,Scala类Author实现了Java接口Comparable并与Java Files一起使用。Java代码使用伴随对象Author中的方法,并访问Author类的字段。它还使用JavaConversions在Scala集合和Java集合之间进行转换。

在此示例中:

Author.scala

class Author(val firstName: String,
    val lastName: String) extends Comparable[Author] {
  override def compareTo(that: Author) = {
    val lastNameComp = this.lastName compareTo that.lastName
    if (lastNameComp != 0) lastNameComp
    else this.firstName compareTo that.firstName
  }
}
object Author {
  def loadAuthorsFromFile(file: java.io.File): List[Author] = ???
}

App.java

import static scala.collection.JavaConversions.asJavaCollection;
public class App {
    public List<Author> loadAuthorsFromFile(File file) {
        return new ArrayList<Author>(asJavaCollection(
            Author.loadAuthorsFromFile(file)));
    }
    public void sortAuthors(List<Author> authors) {
        Collections.sort(authors);
    }
    public void displaySortedAuthors(File file) {
        List<Author> authors = loadAuthorsFromFile(file);
        sortAuthors(authors);
        for (Author author : authors) {
            System.out.println(
                author.lastName() + ", " + author.firstName());
        }
    }
}

您的示例可能是反过来的,在Scala应用程序中使用Java类,但是由于最终还是JVM类(并且上面的示例java.io.File在Scala代码中使用了Java类,例如),所以是一样的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们可以在代码中执行多个程序吗?

来自分类Dev

我们可以改进我的代码以交换Scala中的相邻数组元素吗?

来自分类Dev

我们可以改善我的代码以交换Scala中的相邻数组元素吗?

来自分类Dev

我们可以编译Windows程序的源代码吗?

来自分类Dev

我们可以通过在Java中编写upper来代替UPPER函数吗?

来自分类Dev

在Java中我们可以编写“SuperClassObject instanceof SubClass”吗?

来自分类Dev

我们可以使用Scala调试Java程序吗

来自分类Dev

我们可以使用Scala调试Java程序吗

来自分类Dev

我们可以在程序宏属性中获取调用方的源代码位置吗?

来自分类Dev

我们可以在Java swing中编辑生成的代码吗?

来自分类Dev

我们可以在Java中模拟Web容器吗?

来自分类Dev

我们可以在java类中编写多少个变量,多少方法,以及可以在java方法中编写多少行代码?

来自分类Dev

我们可以编写Visual Studio Code扩展吗?

来自分类Dev

我们可以不用javascript编写IF语句吗

来自分类Dev

我们会在视图 python 文件中编写所有代码吗?

来自分类Dev

我们可以使用JAVA触发的队列编写Azure Webjobs吗

来自分类Dev

我们可以在Mysql的存储过程中编写存储函数吗

来自分类Dev

我们可以在mysql custum函数中编写sql查询吗

来自分类Dev

我们可以在MySQL事件中编写多个查询吗?

来自分类Dev

我们可以在SQL Server中编写外键时使用CAST函数吗

来自分类Dev

我们可以从Java应用程序内部限制Java应用程序的内存吗?

来自分类Dev

我们可以从Java应用程序内部限制Java应用程序的内存吗?

来自分类Dev

我们可以在C中的CGI脚本中添加PHP代码吗?

来自分类Dev

我们可以在Python中使用C代码吗?

来自分类Dev

我们可以推送代码GIT功能分支吗?

来自分类Dev

我们可以在Android上实现MATLAB代码吗?

来自分类Dev

我们可以推送代码GIT功能分支吗?

来自分类Dev

我们可以在testcafe中编写具有Next JS API的应用程序的e2e测试吗?

来自分类Dev

在使用ReactJS和JSX时,我们可以编写简单的JS代码以某种方式返回某些元素吗?

Related 相关文章

  1. 1

    我们可以在代码中执行多个程序吗?

  2. 2

    我们可以改进我的代码以交换Scala中的相邻数组元素吗?

  3. 3

    我们可以改善我的代码以交换Scala中的相邻数组元素吗?

  4. 4

    我们可以编译Windows程序的源代码吗?

  5. 5

    我们可以通过在Java中编写upper来代替UPPER函数吗?

  6. 6

    在Java中我们可以编写“SuperClassObject instanceof SubClass”吗?

  7. 7

    我们可以使用Scala调试Java程序吗

  8. 8

    我们可以使用Scala调试Java程序吗

  9. 9

    我们可以在程序宏属性中获取调用方的源代码位置吗?

  10. 10

    我们可以在Java swing中编辑生成的代码吗?

  11. 11

    我们可以在Java中模拟Web容器吗?

  12. 12

    我们可以在java类中编写多少个变量,多少方法,以及可以在java方法中编写多少行代码?

  13. 13

    我们可以编写Visual Studio Code扩展吗?

  14. 14

    我们可以不用javascript编写IF语句吗

  15. 15

    我们会在视图 python 文件中编写所有代码吗?

  16. 16

    我们可以使用JAVA触发的队列编写Azure Webjobs吗

  17. 17

    我们可以在Mysql的存储过程中编写存储函数吗

  18. 18

    我们可以在mysql custum函数中编写sql查询吗

  19. 19

    我们可以在MySQL事件中编写多个查询吗?

  20. 20

    我们可以在SQL Server中编写外键时使用CAST函数吗

  21. 21

    我们可以从Java应用程序内部限制Java应用程序的内存吗?

  22. 22

    我们可以从Java应用程序内部限制Java应用程序的内存吗?

  23. 23

    我们可以在C中的CGI脚本中添加PHP代码吗?

  24. 24

    我们可以在Python中使用C代码吗?

  25. 25

    我们可以推送代码GIT功能分支吗?

  26. 26

    我们可以在Android上实现MATLAB代码吗?

  27. 27

    我们可以推送代码GIT功能分支吗?

  28. 28

    我们可以在testcafe中编写具有Next JS API的应用程序的e2e测试吗?

  29. 29

    在使用ReactJS和JSX时,我们可以编写简单的JS代码以某种方式返回某些元素吗?

热门标签

归档