ブリッジメソッドになると、(もしmughalとangelikalangerのウェブサイトでSCJPを読んだ後で)サブクラスによってオーバーライドが適切に行われるようにするには、Javaコンパイラがそれらを追加することがわかります。しかし、これは以下のとおり少し混乱です:消去する前にJavaジェネリック - ブリッジメソッド
:
class x <T> {
void set(T t){}
}
class y <E> extends x {
void set(E e) {} // name clash here
}
class z<E> extends x {
void set(Object y) {} // no name clash here
}
class z1<E> extends x<T> {
void set(Object y) {} // name clash here
}
消去後:
class x {
void set (Object t) {}
}
私は、クラスYの名前の衝突を理解したがための名前の衝突が存在しない理由クラスz? また、クラスz1の名前の衝突がありますか?パズルリング
を 'クラスz'は' 'クラスX 'のset'メソッドをオーバーライドします。タイプEとタイプTは厳密に同じタイプではありません。 'class z1'に名前の衝突があります。 –
ちょうどよい推薦です:生の型は使用しないでください。 –
あなたの旗を受け取った、申し訳ありません - 要求通りにできません。 –