一個(gè)春天的問題。如何理解Java泛型(Generictype或generics)簡單的理解就是類型的參數(shù)化,比如我們?cè)诙x一個(gè)類屬性或者實(shí)例屬性的時(shí)候,往往會(huì)指定具體的類型,比如Integer,Person等,但是如果使用泛型,我們將這些特定的類型參數(shù)化,并用一個(gè)可以代表所有類型的寬泛的“類型”T來定義它們。
generics (Generictype或generics)簡單理解就是類型的參數(shù)化。例如,當(dāng)我們定義一個(gè)類屬性或?qū)嵗龑傩詴r(shí),我們通常會(huì)指定特定的類型,如Integer和Person,但如果使用泛型,我們會(huì)將這些特定類型參數(shù)化,并使用可以表示所有類型的廣義“類型”。你可以在Collectionframework中看到泛型的動(dòng)機(jī)。
3、RUST中的turbofish語法(一
turbo fish turbo fish,通常用于在表達(dá)式中為泛型類型、函數(shù)或方法指定參數(shù)。關(guān)于turbofish,Rust編程語言(第1版)和Rust編程語言(第2版)都有解釋。個(gè)人認(rèn)為第一版說的很清楚了。大多數(shù)情況下,當(dāng)涉及到泛型時(shí),編譯器可以自動(dòng)推斷泛型參數(shù):但有時(shí),編譯器需要一些幫助。例如,如果我們省略最后一行的打印,我們將得到如下編譯錯(cuò)誤:我們可以使用類型注釋來解決它,或者通過名為 turbofish 的語法綁定泛型參數(shù)T:當(dāng)我們不想將結(jié)果綁定到變量時(shí),第二種方法很有用。
參見迭代器和消費(fèi)者一章中的例子。TableB4:泛型你可以在編譯器不能推斷類型參數(shù)的任何情況下使用,比如A因?yàn)椴荒芡茢嘧兞款愋投黄鹱饔?。b確實(shí)有效,因?yàn)槲覀冎苯佑胻urbofish語法指定了類型參數(shù)。c是可行的,因?yàn)槲覀冎苯又付薱的類型。
4、一個(gè)spring的問題。我在開發(fā)一個(gè)項(xiàng)目時(shí),出現(xiàn)了下面的異常。請(qǐng)哪位高手...原因好像是找不到這個(gè)類的構(gòu)造函數(shù)。你應(yīng)該重寫它的構(gòu)造函數(shù),之前的默認(rèn)就沒有了。創(chuàng)建對(duì)象時(shí)找不到它,因此會(huì)報(bào)告一個(gè)錯(cuò)誤。因?yàn)閍ggregate函數(shù)處理的是數(shù)據(jù)組,所以在這個(gè)例子中,MAX函數(shù)將整個(gè)TEACHER表作為一個(gè)組,TNAME、DNAME和TSEX的數(shù)據(jù)沒有分組,所以SELECT語句沒有邏輯意義。MAX()和MIN()函數(shù)不僅可以作用于數(shù)字?jǐn)?shù)據(jù),還可以作用于字符串或日期時(shí)間數(shù)據(jù)類型的數(shù)據(jù)。
5、java是什么時(shí)候開始支持泛型的( generics從jdk1.5開始,泛型其實(shí)是借鑒了c#。當(dāng)然樓上說jdk5.0更正確,但是以前大家都說jdk1.5 .自從jDK1.5. JavaSE5.0,(也就是javaSE1.5),沒有jdk5.0這樣的1.5,Jdk1.5也叫java5.0,java從5.0版本開始就支持泛型。所謂1.4、1.5、5.0的說法當(dāng)然更科學(xué)。