title: Java Generics in combination with interface inheritance
body: <p>I have a problem with generics in Java in combination with interface inheritance.
  Here is an exampe:</p>
  
  <pre><code>public interface Type0 { }
  
  public interface Type1 extends Type0 {
      void method();
  }
  
  public interface SomeInterface0&lt;T extends Type0&gt; {
     T get();
  }
  
  public interface SomeInterface1&lt;T extends Type1&gt; extends SomeInterface0&lt;T&gt; { }
  </code></pre>
  
  <p>Now, when I try to use field of type <code>SomeInterface1</code> without type parameter java comiler treats type of <code>SomeInterface1.get()</code> method result as <code>Type0</code>. And can't compile something like this:</p>
  
  <pre><code>...
  SomeInterface1 si1;
  ...
  si1.get().method();
  </code></pre>
  
  <p>So, why <code>SomeInterface1&lt;T extends Type1&gt;</code> has a default vlue for <code>T</code> = <code>Type0</code> ?</p>