-
Bug
-
Resolution: Unresolved
-
P5
-
None
-
5.0
-
Cause Known
-
generic
-
generic
$ cat -n Tiger.java
1 class Super {
2 Number method() {
3 return 1;
4 }
5 }
6
7 class Tiger extends Super {
8 Integer method() {
9 return 1;
10 }
11 }
$ cat -n Mantis1.java
1 class Mantis1 extends Tiger {
2 Integer method() {
3 return new Integer(1);
4 }
5 }
$ cat -n Mantis2.java
1 class Mantis2 extends Tiger {
2 Number method() {
3 return new Integer(1);
4 }
5 }
$ /usr/java/jdk1.5.0/bin/javac -J-showversion -sourcepath /xyz Tiger.java
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
$ /usr/java/jdk1.5.0/bin/javac -J-showversion -sourcepath /xyz -source 1.4 Mantis1.java
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
Mantis1.java:2: warning: method() in Mantis1 overrides method() in Tiger; overridden method is a bridge method
Integer method() {
^
Mantis1.java:2: method() in Mantis1 cannot override method() in Tiger; attempting to use incompatible return type
found : java.lang.Integer
required: java.lang.Number
Integer method() {
^
1 error
1 warning
$ /usr/java/jdk1.5.0/bin/javac -J-showversion -sourcepath /xyz -source 1.4 Mantis2.java
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
Mantis2.java:2: warning: method() in Mantis2 overrides method() in Tiger; overridden method is a bridge method
Number method() {
^
Mantis2.java:2: method() in Mantis2 cannot override method() in Tiger; attempting to use incompatible return type
found : java.lang.Number
required: java.lang.Integer
Number method() {
^
1 error
1 warning
###@###.### 2005-04-11 21:54:00 GMT
1 class Super {
2 Number method() {
3 return 1;
4 }
5 }
6
7 class Tiger extends Super {
8 Integer method() {
9 return 1;
10 }
11 }
$ cat -n Mantis1.java
1 class Mantis1 extends Tiger {
2 Integer method() {
3 return new Integer(1);
4 }
5 }
$ cat -n Mantis2.java
1 class Mantis2 extends Tiger {
2 Number method() {
3 return new Integer(1);
4 }
5 }
$ /usr/java/jdk1.5.0/bin/javac -J-showversion -sourcepath /xyz Tiger.java
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
$ /usr/java/jdk1.5.0/bin/javac -J-showversion -sourcepath /xyz -source 1.4 Mantis1.java
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
Mantis1.java:2: warning: method() in Mantis1 overrides method() in Tiger; overridden method is a bridge method
Integer method() {
^
Mantis1.java:2: method() in Mantis1 cannot override method() in Tiger; attempting to use incompatible return type
found : java.lang.Integer
required: java.lang.Number
Integer method() {
^
1 error
1 warning
$ /usr/java/jdk1.5.0/bin/javac -J-showversion -sourcepath /xyz -source 1.4 Mantis2.java
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
Mantis2.java:2: warning: method() in Mantis2 overrides method() in Tiger; overridden method is a bridge method
Number method() {
^
Mantis2.java:2: method() in Mantis2 cannot override method() in Tiger; attempting to use incompatible return type
found : java.lang.Number
required: java.lang.Integer
Number method() {
^
1 error
1 warning
###@###.### 2005-04-11 21:54:00 GMT