以下の2つのコードスニペットの違いはわかりません。誰かが簡単な説明で私を助けることができますか?汎用スーパークラスとスーパークラスタイプの違い
まず、私はBaseEntity
という名前のスーパークラスを拡張するクラスがたくさんあると言わなければならないので、次のスニペットの違い、利点、欠点は何ですか?あなたが復帰方法の制限を持っているあなたの最初のコードで
// 1
public <T extends BaseEntity> T getName(T t) {
return t;
}
// 2
public BaseEntity getName(BaseEntity t) {
return t;
}
これは正しくありません。最初のコードスニペットでは、入力パラメータの型は 'return'値と同じ' BaseEntity'のサブクラスでなければなりません。これは、どんな種類のオブジェクトでもかまいません。2番目のスニペットでは、 'return'値と入力パラメータは' BaseEntity'のサブクラスでもあります。 – Daniel