class JavaRxObservable
class MyObservable extends JavaRxObservable
object MyObservable {
implicit class ObservablePimp(o: JavaRxObservable) {
def flatMapPimp: JavaRxObservable = ...
}
}
def api: JavaRxObservable = new MyObservable
api.flatMapPimp // is this possible without import statement ?
请注意,无法为第三方类型 JavaRxObservable创建配套对象。并且因为我的api
方法必须返回JavaRxObservable
类型,因为它具有组合性质(MyObservable#map
会返回JavaRxObservable
),这是一个主要的缺点API设计,因为你强迫人们阅读文档,他们必须导入使用你的API的东西。如果包装对象的声明是第三方使用的API,那么甚至包装对象中的声明都没有帮助。