java - 在 scala 文件中包含 java 源代码

标签 java scala compilation

<分区>

Possible Duplicate:
Compile file containing java and scala code

我知道 Scala 可以轻松地使用 Java 类。但是,是否可以在 scala 文件中包含 Java 源代码并以任何方式使用 scalac 进行编译?

或者,是否可以将 javac 编译的字节码作为字节数组包含在源代码中,并从中导入(糟糕,是的)?

这是家庭作业,所以,不,我不能有单独的文件,而且它必须scalac file.scala 编译,没有额外的参数。澄清一下,这是我老师的硬性要求

最佳答案

如果你想在 Scala 代码中编写一个字面字节数组,很容易从它转到一个普通的 Java 类,只需调用 Classloader.defineClass 即可。 .这意味着您需要创建自己的 ClassLoader 子类,以公开此方法的重载之一。这在 Scala 中都可以轻松实现。

如果你仔细准备这个,你甚至可以通过让你的类从字节数组实现你在 Scala 中定义的接口(interface)来获得类型安全。我不知道这方面的确切细节,但我记得 Java 类可以子类化/实现 Scala 中定义的东西。如果做不到这一点,您当然可以进行反射(reflection)。

关于java - 在 scala 文件中包含 java 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13554617/

相关文章:

scala - sbt 条件 if else 样式配置

scala - 从 Future[ List[ A ] ] 获取 head Future 的首选方式

C++编译错误

java - 缓存新闻重新加载 10 分钟周期

java - JAVA中涉及到静态初始化和继承时执行顺序是怎样的?

scala - 将 Iterable[Either[A,B]] 减少到任一个 [A, Iterable[B]]

deployment - F#编译/部署

java - 多个线程共享/访问相同数据的问题

Java - 逐行将字符串写入文件与单行/无法将字符串转换为字符串[]

javascript - 你能把 'compile' html文件放在一起来模拟 'include'函数吗?