我有一个图书馆的课程(特别是,com.twitter.finagle.mdns.MDNSResolver
)。我想扩展这个类(我希望它返回一个 Future[Set],而不是一个 Try[Group])。
当然,我知道我可以对它进行子类化并在那里添加我的方法。但是,我正在努力学习 Scala,这似乎是一个尝试新事物的机会。
我认为这可能的原因是JavaConverters
. 以下代码:
class Test {
var lst:Buffer[Nothing] = (new java.util.ArrayList()).asScala
}
无法编译,因为asScala
Java 的ArrayList
. 但是,如果我导入一些新定义:
class Test {
import collection.JavaConverters._
var lst:Buffer[Nothing] = (new java.util.ArrayList()).asScala
}
然后突然有一个方法asScala
。所以看起来这个ArrayList
类正在被透明地扩展。
我JavaConverters
是否正确理解了的行为?我可以(并且应该)复制该方法吗?