1 class pkg1.O<T> 2 name: O / O / pkg1.O 3 type parameters: 4 T 5 superclass: 6 java.lang.Object 7 constructors: 8 O() 9 10 class pkg1.O<T>.I<S> 11 name: I / O.I / pkg1.O.I 12 type parameters: 13 S 14 nested in: 15 pkg1.O<T> 16 superclass: 17 java.lang.Object 18 constructors: 19 I() 20 methods: 21 void m1(O<String>.I<Number>) 22 23 class pkg1.X<T> 24 name: X / X / pkg1.X 25 type parameters: 26 T 27 superclass: 28 java.lang.Object 29 constructors: 30 X() 31 32 class pkg1.X<T>.Y 33 name: Y / X.Y / pkg1.X.Y 34 nested in: 35 pkg1.X<T> 36 superclass: 37 java.lang.Object 38 constructors: 39 Y() 40 41 class pkg1.X<T>.Y.Z<S> 42 name: Z / X.Y.Z / pkg1.X.Y.Z 43 type parameters: 44 S 45 nested in: 46 pkg1.X<T>.Y 47 superclass: 48 java.lang.Object 49 constructors: 50 Z() 51 methods: 52 void m1(X<String>.Y.Z<Number>) 53