次の 2 つのメソッド宣言に混乱があります。
private <U, T extends U> T funWorks(T child, U parent) {
// No compilation errors
}
private <T, U super T> T funNotWorks(T child, U parent) {
// compilation errors
}
上記の両方が有効であるべきではありませんか?U が T の親である 場合、T は U の子です。では、なぜ2番目にコンパイルエラーが発生するのですか?
編集:: 私は、両方とも有効だと思いT extends T
ますT super T
。右 ?