このジェネリッククラスがあるとしましょう:
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 つのインスタンスは、次の同じ raw クラスを共有します。
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 クラスを使用していくつかの例を作成できますか?
私はすでに他の回答を読んでいますが、具体的な例がなければ完全には理解できません。