-
Bug
-
Resolution: Fixed
-
P3
-
7
-
b06
-
unknown
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2212233 | 8 | Maurizio Cimadamore | P3 | Closed | Fixed | b01 |
This program no longer compiles in JDK 7:
import java.util.*;
interface A { List<Number> getList(); }
interface B { List getList(); }
interface AB extends A, B {}
class Test {
void test(AB ab) {
Number n = ab.getList().get(1); //error here
}
}
OUTPUT:
Test.java:17: error: incompatible types
Number n = ab.getList().get(1);
^
required: Number
found: Object
1 error
import java.util.*;
interface A { List<Number> getList(); }
interface B { List getList(); }
interface AB extends A, B {}
class Test {
void test(AB ab) {
Number n = ab.getList().get(1); //error here
}
}
OUTPUT:
Test.java:17: error: incompatible types
Number n = ab.getList().get(1);
^
required: Number
found: Object
1 error
- backported by
-
JDK-2212233 Regression: difference in overload resolution when two methods are maximally specific
-
- Closed
-
- relates to
-
JDK-7034019 ClassCastException in javac with conjunction types
-
- Closed
-
-
JDK-7034913 15.12.2.5: Resolution of call to abstract methods is nondeterministic
-
- Closed
-