假设我在 .java 文件中定义了 A 类,在 .scala 文件中定义了 B 类。
A类使用B类,B类使用A类。
如果我使用java编译器,我会出现编译错误,因为B类尚未编译。如果我使用 scala 编译器类 A 将找不到。有没有可以同时编译的编译器?
问问题
568 次
2 回答
18
我以为 Scala 2.7.2 引入了联合编译模式来做到这一点?
您使用的是哪个版本,scalac
是否在禁用此模式的情况下运行?
编辑:等一下,当您说 scalac 导致找不到 A 类时 - 您是否意识到您仍然需要在javac
之后编译纯 Java 文件?Scalac 的联合编译模式实际上并不*.class
为 Java 文件生成输出,只是根据它们的签名编译 Scala 类。javac
因此,您仍然需要在之后编译 Java 文件,尽管现在已经编译了 Scala 类,这应该不是问题。
于 2010-12-16T18:22:15.133 回答
1
在 Java 中创建假类 B。仅声明从 A 引用的成员。方法的主体可以为空。一起编译 A.java 和 B.java。然后扔掉B.class,编译B.scala。
于 2012-06-05T14:37:01.117 回答