ライブラリ (具体的にはcom.twitter.finagle.mdns.MDNSResolver
) からクラスを取得しました。クラスを拡張したい (Try[Group] ではなく、Future[Set] を返すようにしたい)。
もちろん、サブクラス化してそこにメソッドを追加できることはわかっています。しかし、私は 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
正しく理解していますか? その方法論を複製できますか (また複製する必要がありますか)?