在 Wicket 上混合 Scala 和 Java
我们使用 Wicket 作为我们的前端框架,到目前为止我们的应用程序是纯 Java 的。然而,我想开始在我们的一些新类中使用一些 Scala。旧代码将保留在 Java 中。
安装 maven-scala-plugin、scala-library、scalatest 依赖项并下载它们后,我不得不面对我不知道如何在 Wicket 中将 Scala 与 Java 混合的问题。到目前为止,我只在 Wicket 中看到过有关纯 Java 或纯 Scala 项目的教程。
在 WebApplication 的扩展类中,您有诸如此类的内容
public Class<? extends Page> getHomePage() {
return HomePage.class;
}
,如果您使用 Scala,您将具有诸如此类的内容
def getHomePage = classOf[HomePage]
如果我有一个名为 HomePageScala.scala 的 Scala 类,我如何从 java 代码中调用它?
如何使用调用 Scala 类的 Java 代码创建 BookmarkablePageLink? 例如
add(new BookmarkablePageLink<HomePageScala>("homePageScala", HomePageScala.class));
,这实际上可能吗?还是我必须使用 100% java 或 100% scala?
预先非常感谢您!
We use Wicket as our front end framework and until now our application is pure Java. However, I would like to start using a bit of Scala on some of our new classes. The old code would stay in Java.
After installing the maven-scala-plugin, scala-library, scalatest dependencies and downloading them I had to face the problem that I do not know how to mix Scala with Java in Wicket. Until now I have only seen tutorials about either pure Java or pure Scala projects in Wicket.
In the extended class of WebApplication you have something such as
public Class<? extends Page> getHomePage() {
return HomePage.class;
}
and if you are using Scala you would have something such as
def getHomePage = classOf[HomePage]
If I have a Scala class called HomePageScala.scala how can I call it from the java code?
How can I create a BookmarkablePageLink using Java code calling a Scala class?
e.g
add(new BookmarkablePageLink<HomePageScala>("homePageScala", HomePageScala.class));
Is this actually even possible or do I have to use either 100% java or 100% scala?
Thank you very much in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可以在 Scala 和 Java 代码之间进行交叉引用。如果你使用maven,试试这个配置。使用 Scala 2.8.0 进行测试:
我不确定,但认为没有 Maven,你应该尝试这个 scalac 参数:
It's possible to make cross reference between Scala and Java code. If you use maven, try this config. Tested with Scala 2.8.0:
I'm not sure, but think that without maven you should to try this scalac argument:
我会将项目分成多模块构建。
这样 Java 代码就可以轻松引用 Scala 代码。
这两个 JAR 都将包含在 Web 应用程序中。
缺点:Java 可以引用 Scala 代码,但反之则不行(反之亦然)。
I would separate the project into a multi-module build.
That way the Java code can easily reference the Scala code.
Both JARs would be included in the webapp.
The drawback: Java could reference Scala code, but not the other way around (or vice-versa).