fork download
  1. import java.util.*;
  2.  
  3. class TypeToken<T> {
  4. TypeToken<? extends T> asExtendsWildcard() { return null; }
  5. TypeToken<List<T>> asList() { return null; }
  6.  
  7. public static void main(String[] args) {
  8. TypeToken<Number> tt = new TypeToken<Number>(){};
  9. TypeToken<? extends Number> extendsType = tt.asExtendsWildcard();
  10. TypeToken<? extends List<? extends Number>> listTypeToken1 = extendsType.asList();
  11. TypeToken<List<? extends Number>> listTypeToken2 = extendsType.asList();
  12. }
  13. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:11: error: incompatible types: TypeToken<List<CAP#1>> cannot be converted to TypeToken<List<? extends Number>>
        TypeToken<List<? extends Number>> listTypeToken2 = extendsType.asList();
                                                                             ^
  where CAP#1 is a fresh type-variable:
    CAP#1 extends Number from capture of ? extends Number
1 error
stdout
Standard output is empty