Hallo,
habe gelesen, dass bei <? super ...> der Aufruf von Methoden unmöglich ist, deren Return-Typ vom dem Typ ist, für den das Wildcard steht!
Bei der Methode m1()ist doch der Return-Typ gleich dem Wildcard-Typ?
Habe ich etwas falsch verstanden? Für jede Erklärung dankbar.
Gruß und Dank im Voraus
enero99
habe gelesen, dass bei <? super ...> der Aufruf von Methoden unmöglich ist, deren Return-Typ vom dem Typ ist, für den das Wildcard steht!
Bei der Methode m1()ist doch der Return-Typ gleich dem Wildcard-Typ?
Habe ich etwas falsch verstanden? Für jede Erklärung dankbar.
Gruß und Dank im Voraus
enero99
Java:
import java.util.ArrayList;
import java.util.List;
public class Gen8 {
public static void main(String[] args) {
List<C2> l = new ArrayList<C2>();
l.add(new C2(4711));
C2 c = new C2(4712);
m1(l,c);
}
@SuppressWarnings("unchecked")
static <T extends C1> List<T> m1(List<? super T> list, T t) {
list.add(t);
return (List<T>) list;
}
}
class C1 {
private int v;
public C1(int v) {super();this.v = v;}
int getV() {return v;}
void setV(int v) {this.v = v;}
}
class C2 extends C1{
public C2(int v) {super(v);}};
class C3 extends C2{
public C3(int v) {super(v);}};