1=== test/A.java === 2package test; 3 4public class A<U> { 5 public class Inner { 6 } 7} 8 9=== test/I.java === 10package test; 11 12public class I<T> { 13 public class Holder extends A<T> { 14 } 15} 16 17=== test/J.java === 18package test; 19 20public class J extends I<String> { 21} 22 23=== test/Test.java === 24package test; 25 26public class Test extends J { 27 public class K extends J.Holder {} 28 29 K.Inner i; 30} 31