java - public <T> T findOne(T record) 這是什么意思
問(wèn)題描述
是代表返回的類型可以是<T> 或者 T 嗎
問(wèn)題解答
回答1:樓上已經(jīng)回答的很專業(yè)了...我就白話的方式回答一下,哈哈比如平常看到一個(gè)方法可能是這樣的
public BigCar find(Long carId)
這個(gè)方法編譯沒(méi)問(wèn)題的前提是BigCar是一個(gè)已存在的類嘛,想表述根據(jù)一個(gè)車的id查詢大車BigCar
這時(shí)你還想寫(xiě)一個(gè)小車SmallCar的查詢方法,估計(jì)就應(yīng)該先創(chuàng)建一個(gè)SmallCar,然后寫(xiě)一個(gè)查詢方法
public SmallCar find(Long carId)
沒(méi)問(wèn)題,這個(gè)時(shí)候你要是想任性說(shuō)寫(xiě)一個(gè)不管是大車還是小車,都是根據(jù)id查詢的方法,任性的寫(xiě)法就是
public XXX find(Long carId)
那編譯器肯定就要犯愁了,你這個(gè)XXX是什么鬼啊,沒(méi)有這個(gè)類啊敲黑板!!!重點(diǎn)來(lái)了這個(gè)時(shí)候就有個(gè)語(yǔ)法哈,你想要表明這個(gè)XXX只是一個(gè)代指,但是具體是啥不知道,那就用<>表示,里面可以寫(xiě)n個(gè)代指的東西,中間用逗號(hào)隔開(kāi),這樣就寫(xiě)成了
public <XXX> XXX find(Long carId)
所以啊,<>只是代表一個(gè)定義符,里面定義了一堆變量,方便后續(xù)使用而已你在方法中定義,那這個(gè)變量的適用范圍就在這個(gè)方法里你要是在類里定義,嘿嘿,那這個(gè)變量整個(gè)類里都可以用哦,比如:
public class Car<X, XX>{ X x; XX xx; Long id; public X findX(){return x; }}回答2:
java的泛型方法的寫(xiě)法,語(yǔ)法規(guī)定返回類型是T<T>是表明這是個(gè)泛型方法(我猜是和編譯有關(guān)的,畢竟Java泛型是擦除方式的
相關(guān)文章:
1. docker網(wǎng)絡(luò)端口映射,沒(méi)有方便點(diǎn)的操作方法么?2. debian - docker依賴的aufs-tools源碼哪里可以找到啊?3. docker api 開(kāi)發(fā)的端口怎么獲取?4. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””5. docker容器呢SSH為什么連不通呢?6. python - from ..xxxx import xxxx到底是什么意思呢?7. nignx - docker內(nèi)nginx 80端口被占用8. javascript - 移動(dòng)端,當(dāng)出現(xiàn)遮罩層的時(shí)候,遮罩層里有div是超出高度scroll的,怎么避免滑動(dòng)div的時(shí)候,body跟隨滑動(dòng)?9. ddos - apache日志很多其它網(wǎng)址,什么情況?10. 請(qǐng)教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒(méi)有反應(yīng)
