-
Bug
-
Resolution: Cannot Reproduce
-
P4
-
6
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2203366 | 6-pool | Maurizio Cimadamore | P4 | Closed | Won't Fix |
javac throws duplicate warning messages on compiling the below program:
import java.util.Iterator;
public class TestUncheckedWarning {
public abstract class MyIterator<T> implements Iterator<T> {}
public abstract class Base<T extends Iterator<?>> {
protected abstract T foo();
public abstract Iterable<T> getIterable();
}
public abstract class Derived extends Base<MyIterator<Number>> {
public MyIterator foo() {
return getIterable().iterator().next();
}
}
}
javac -Xlint TestUncheckedWarning.java
TestUncheckedWarning.java:12: warning: foo() in TestUncheckedWarning.Derived overrides fo
o() in TestUncheckedWarning.Base; return type requires unchecked conversion
found : TestUncheckedWarning.MyIterator
required: TestUncheckedWarning.MyIterator<java.lang.Number>
public MyIterator foo() {
^
TestUncheckedWarning.java:12: warning: foo() in TestUncheckedWarning.Derived overrides fo
o() in TestUncheckedWarning.Base; return type requires unchecked conversion
found : TestUncheckedWarning.MyIterator
required: TestUncheckedWarning.MyIterator<java.lang.Number>
public MyIterator foo() {
^
2 warnings
testcase: java_util/generics/phase2/UncheckedConversionTest01
import java.util.Iterator;
public class TestUncheckedWarning {
public abstract class MyIterator<T> implements Iterator<T> {}
public abstract class Base<T extends Iterator<?>> {
protected abstract T foo();
public abstract Iterable<T> getIterable();
}
public abstract class Derived extends Base<MyIterator<Number>> {
public MyIterator foo() {
return getIterable().iterator().next();
}
}
}
javac -Xlint TestUncheckedWarning.java
TestUncheckedWarning.java:12: warning: foo() in TestUncheckedWarning.Derived overrides fo
o() in TestUncheckedWarning.Base; return type requires unchecked conversion
found : TestUncheckedWarning.MyIterator
required: TestUncheckedWarning.MyIterator<java.lang.Number>
public MyIterator foo() {
^
TestUncheckedWarning.java:12: warning: foo() in TestUncheckedWarning.Derived overrides fo
o() in TestUncheckedWarning.Base; return type requires unchecked conversion
found : TestUncheckedWarning.MyIterator
required: TestUncheckedWarning.MyIterator<java.lang.Number>
public MyIterator foo() {
^
2 warnings
testcase: java_util/generics/phase2/UncheckedConversionTest01
- backported by
-
JDK-2203366 Use of an unchecked conversion generates redundant compiler warnings.
-
- Closed
-
- relates to
-
JDK-6985719 Alike methods in interfaces (Inheritance and Overriding)
-
- Closed
-
-
JDK-2203363 Alike methods in interfaces (Inheritance and Overriding)
-
- Closed
-