The compile error of removing casting:
```
error: ambiguous reference to overloaded definition,
[ant:scalac] both method subscribe in class Observable of type (x$1: rx.Subscriber[_ >: _$1], x$2: rx.Scheduler)rx.Subscription
[ant:scalac] and  method subscribe in class Observable of type (x$1: rx.Observer[_ >: _$1], x$2: rx.Scheduler)rx.Subscription
[ant:scalac] match argument types (rx.Subscriber[_$2],rx.lang.scala.Scheduler) and expected result type rx.lang.scala.Subscription
[ant:scalac]     asJavaObservable.subscribe(subscriber.asJavaSubscriber, scheduler)
[ant:scalac]                      ^
```