比方說,我有這些類:Java泛型和通配符
class A<T> {
void set(T t) {}
}
class B<T> {
T get() { return null; }
}
class C extends A<String> { }
class D extends B<String> { }
class E extends A<Long> { }
class F extends B<Long> { }
而且這些變量:
A<?> a1 = new C();
B<?> b1 = new D();
A<?> a2 = new E();
B<?> b2 = new F();
我可以做這些莫名其妙地(有一些魔術?):
a1.set(b1.get());
a2.set(b2.get());
翻譯在哪裏? 'b1.get()'返回一個字符串,'a1.set()'接受一個字符串。 – 2012-07-10 10:42:36
@PeterLawrey他必須在適配器類方法中實現該邏輯。 – 2012-07-10 10:44:54
爲什麼他需要如果類型是相同的? – 2012-07-10 10:45:50