假设我有这个通用类:
class Item<T> {
private T item;
public void set(T item) {
this.item = item;
}
public T get() {
return item;
}
}
如果我创建 2 个这样的实例:
Item<Integer> intItem = new Item<Integer>();
Item<String> stringItem = new Item<String>();
2 个实例共享相同的原始类:
class Item {
private Object item;
public void set(Object item) {
this.item = item;
}
public Object get() {
return item;
}
}
现在,如果我像这样扩展类 Item:
class IntItem extends Item<Integer>{
private Integer item;
public void set(Integer item) {
this.item = item;
}
public Integer get() {
return item;
}
}
这些桥接方法被创建:
class IntItem extends Item<Integer>{
private Integer item;
//Bridge method 1
public void set(Object item) {
this.item = (Integer) item;
}
public void set(Integer item) {
this.item = item;
}
//Bridge method 2
public Object get() {
return item;
}
public Integer get() {
return item;
}
}
直到这里我都做对了吗?我的问题是,为什么以及何时需要桥接方法?你能用这个 Item 类做一些例子吗?
我已经阅读了其他答案,但是如果没有具体的例子,我仍然无法完全理解。