-
Bug
-
Resolution: Unresolved
-
P4
-
6, 7, 8, 9
-
None
If this test case is compiled with javac:
interface Iface<T extends Number> {
String m(T...t);
}
public class Test {
public static void main(String[] args) {
Iface<? super Integer> i = (Integer...a) -> "";
String result = i.m(1);
}
}
at execution time you will get:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Number; cannot be cast to [Ljava.lang.Integer;
at Test$$Lambda$1/980546781.m(Unknown Source)
at Test.main(Test.java:8)
This is correct according to the current spec. It should be checked if the spec can be modified to deal better with similar cases.
interface Iface<T extends Number> {
String m(T...t);
}
public class Test {
public static void main(String[] args) {
Iface<? super Integer> i = (Integer...a) -> "";
String result = i.m(1);
}
}
at execution time you will get:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Number; cannot be cast to [Ljava.lang.Integer;
at Test$$Lambda$1/980546781.m(Unknown Source)
at Test.main(Test.java:8)
This is correct according to the current spec. It should be checked if the spec can be modified to deal better with similar cases.
- relates to
-
JDK-8059926 java.lang.ClassCastException: [Ljava.lang.Number; cannot be cast to [Ljava.lang.Integer;
- Closed