繁体   English   中英

Java Scala互操作性

[英]java scala interoperability

假设您有一个scala库,您的Java程序需要使用它,而不仅仅是将来使用。

当涉及到收藏以及scala中可能包含的所有好东西时。 您宁愿在类中创建一些特定于Java的方法,还是在某种程度上符合单一职责原则,您将创建一堆静态对象,以提供使用显式转换asjava在scala版本中转换对象的方法。

如果有一种从java内转换asJava的方法会更容易,但是我不知道是否可以从java内使用该显式转换包。 我怀疑它使用类型类来增强功能。

Java有什么可以帮助您的吗?

最佳做法是什么?

提前谢谢了。

从Java调用Scala代码通常比其他方法复杂得多。 如果要引用Scala标准库,实际上也可以从Java使用asJava 对于类型类,它们实际上只是隐式的,编译器会自动将其替换为您。 显然,在Java中没有隐式函数,因此您需要自己传递正确的实例(这有点麻烦但可行)。 这是一个示例(它将Java映射转换为Scala,但反之亦然 ): 在java中将java.util.HashMap转换为scala.collection.immutable.Map

就我个人而言,我应该在要公开给Java的位上引入瘦包装器,这些包装器不使用任何花哨的Scala功能,例如隐式,函数对象(实际上可以用Java 8构造替换它们)等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM