Hallo,
zu meinem Problem erstmal ein Codeausschnitt:
Dabei wird mir der Fehler angezeigt:
The return type is incompatible with C.getFoo()
Wisst ihr an was das liegen könnte? Kovariante Rückgabewerte sind doch eigentlich möglich und da B ein spezielles A ist, müsste das doch eigentlich gehen. Ich habe übrigens Java 6, daran sollte es doch nicht liegen!?
Kann mir dabei jemand helfen? Ich wäre euch sehr dankbar, weil ich den Code sonst sehr aufwendig umschreiben muss!
Herzlichen Dank!
zu meinem Problem erstmal ein Codeausschnitt:
Code:
import java.util.ArrayList;
class A {
}
class B extends A {
}
// "Class B is more narrow than class A"
// Classes demonstrating method overriding:
class C {
ArrayList<A> getFoo() {
ArrayList<A> result = new ArrayList<A>();
result.add(new A());
return result;
}
}
class D extends C {
ArrayList<B> getFoo() {
ArrayList<B> result = new ArrayList<B>();
result.add(new B());
return result;
}
}
Dabei wird mir der Fehler angezeigt:
The return type is incompatible with C.getFoo()
Wisst ihr an was das liegen könnte? Kovariante Rückgabewerte sind doch eigentlich möglich und da B ein spezielles A ist, müsste das doch eigentlich gehen. Ich habe übrigens Java 6, daran sollte es doch nicht liegen!?
Kann mir dabei jemand helfen? Ich wäre euch sehr dankbar, weil ich den Code sonst sehr aufwendig umschreiben muss!
Herzlichen Dank!