1
- // Helper classes
2
- class Wrapper <T > {
3
- public T field ;
4
- }
5
-
6
- class IntWrapper {
7
- public int i ;
8
- }
9
-
10
- class TwoWrapper <K , V > {
11
- public K first ;
12
- public V second ;
13
- }
14
-
15
- interface InterfaceWrapper <T > {
16
- public T method (T t );
17
- }
18
-
19
1
// A class extending a generic class instantiated with a standard library class
20
2
class SuperclassInst extends Wrapper <Integer > {
21
3
public void foo () {
@@ -24,14 +6,14 @@ public void foo() {
24
6
}
25
7
26
8
// A class extending a generic class instantiated with a user-defined class
27
- class SuperclassInst2 extends Wrapper <IntWrapper > {
9
+ class SuperclassInst2 extends Wrapper <IWrapper > {
28
10
public void foo () {
29
11
this .field .i = 5 ;
30
12
}
31
13
}
32
14
33
15
// A class extending an instantiated nested generic class
34
- class SuperclassInst3 extends Wrapper <Wrapper <IntWrapper >> {
16
+ class SuperclassInst3 extends Wrapper <Wrapper <IWrapper >> {
35
17
public void foo () {
36
18
this .field .field .i = 5 ;
37
19
}
@@ -54,7 +36,7 @@ public void foo() {
54
36
55
37
// A generic class extending a generic class with both instantiated and
56
38
// uninstantiated parameters
57
- class SuperclassMixed <U > extends TwoWrapper <U ,IntWrapper > {
39
+ class SuperclassMixed <U > extends PairWrapper <U ,IWrapper > {
58
40
public void foo (U value ) {
59
41
this .first = value ;
60
42
this .second .i = 5 ;
@@ -99,7 +81,7 @@ public void foo(U value) {
99
81
}
100
82
public Inner inner ;
101
83
102
- class InnerGen <T > extends TwoWrapper <U ,T > {
84
+ class InnerGen <T > extends PairWrapper <U ,T > {
103
85
public void foo (U uvalue , T tvalue ) {
104
86
this .first = uvalue ;
105
87
this .second = tvalue ;
@@ -113,9 +95,9 @@ class InnerThree extends Inner {
113
95
}
114
96
class SuperclassInnerUninstTest
115
97
{
116
- SuperclassInnerUninst <IntWrapper > f ;
98
+ SuperclassInnerUninst <IWrapper > f ;
117
99
public void foo () {
118
- IntWrapper x = new IntWrapper ();
100
+ IWrapper x = new IWrapper ();
119
101
f .inner .foo (x );
120
102
f .inner_gen .foo (x ,true );
121
103
f .inner_three .foo (x );
0 commit comments