Rumah > Soal Jawab > teks badan
Mengapa ralat dilaporkan? Bukankah pertama jenis T? Dan <T> Apakah perbezaan antara T dan T?
高洛峰2017-05-17 10:09:21
Jika anda mahukan jenis nilai pulangan kaedah getMax
menjadi T, anda perlu mentakrifkan kaedah getMax
seperti ini: getMax
方法的返回值类型为 T,就要这样去定义getMax
方法:
public T getMax()
如果你希望 getMax 方法返回值的类型由调用者决定,那么就这么去定义 getMax
public <A> A getMax() {
//...
return (A)result;
}
Jika anda mahu jenis nilai pulangan kaedah getMax ditentukan oleh pemanggil, kemudian tentukan kaedah getMax
seperti ini: rrreee
A di sini mestilah tidak sama dengan huruf T yang diisytiharkan dalam nama kelas.Ringkasnya, T dan <T> pada asasnya adalah dua kegunaan yang berbeza. 🎜
阿神2017-05-17 10:09:21
Anda harus mengalih keluar <T> kedua
<T> ialah untuk mentakrifkan generik dan T ialah menggunakan generik
Anda perlu memahami kelas generik dan kaedah generik
Kelas <T> pada sebab dan <T> pada kaedah tidak sepatutnya muncul berulang kali, jika tidak, ia akan dianggap bahawa jenis generik telah ditakrifkan semula pada kaedah tersebut.