|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
While exploring adding covariant overrides for Buffer classes, it was discovered that javac is not making synthetic methods for covariant overrides match the finality of the covariant method.
Simple illustration:
public class Test {
public Object foo() { return null; }
}
public class TestSub extends Test {
public final String foo() { return null; }
}
Yields (javap output):
public class Test {
public Test();
public java.lang.Object foo();
}
public class TestSub extends Test {
public TestSub();
public final java.lang.String foo();
public java.lang.Object foo(); // <- not final?!
}
reported in compiler-dev: http://mail.openjdk.java.net/pipermail/compiler-dev/2014-April/008732.html
|