title: RxJava Subject unable to resolve generic consumer
body: <p><strong>Background:</strong></p>
  
  <p>The following code is from a generic bus from my code that will delegate object of different types (all of them are extending from BaseEvent class) to different consumers.</p>
  
  <p><strong>Problem:</strong></p>
  
  <pre><code>   private static PublishSubject&lt;? extends BaseEvent&gt; mPublishSubject;
      @SuppressLint("CheckResult")
      public void subscribeToEventBus(Class subscribingClass, Class eventToSubscribeTo, Consumer&lt;? extends BaseEvent&gt; subscriber) {
          mPublishSubject.subscribe(subscriber);// &lt;---- ERROR HERE
          mEventBusSubscribersList.add(new EventBusInfo(subscribingClass, eventToSubscribeTo, subscriber));
      }
  </code></pre>
  
  <p><strong><em>Error:</em></strong></p>
  
  <pre><code>            error: no suitable method found for subscribe(Consumer&lt;CAP#1&gt;)
  method Observable.subscribe(Consumer&lt;? super CAP#2&gt;) is not applicable
  (argument mismatch; Consumer&lt;CAP#1&gt; cannot be converted to Consumer&lt;? super CAP#2&gt;)
  method Observable.subscribe(Observer&lt;? super CAP#2&gt;) is not applicable
  (argument mismatch; Consumer&lt;CAP#1&gt; cannot be converted to Observer&lt;? super CAP#2&gt;)
  where CAP#1,CAP#2 are fresh type-variables:
  CAP#1 extends BaseEvent from capture of ? extends BaseEvent
  CAP#2 extends BaseEvent from capture of ? extends BaseEvent
  </code></pre>
  
  <p><strong>Objective:</strong></p>
  
  <p>I want Consumer&lt;> to accept all the classes that extend from BaseEvent. </p>
  
  <p>I'm not quite sure what exactly am I doing wrong considering my primitive knowledge of Java generics.</p>