java - public <T> T findOne(T record) 這是什么意思
問題描述
是代表返回的類型可以是<T> 或者 T 嗎
問題解答
回答1:樓上已經(jīng)回答的很專業(yè)了...我就白話的方式回答一下,哈哈比如平常看到一個方法可能是這樣的
public BigCar find(Long carId)
這個方法編譯沒問題的前提是BigCar是一個已存在的類嘛,想表述根據(jù)一個車的id查詢大車BigCar
這時你還想寫一個小車SmallCar的查詢方法,估計就應該先創(chuàng)建一個SmallCar,然后寫一個查詢方法
public SmallCar find(Long carId)
沒問題,這個時候你要是想任性說寫一個不管是大車還是小車,都是根據(jù)id查詢的方法,任性的寫法就是
public XXX find(Long carId)
那編譯器肯定就要犯愁了,你這個XXX是什么鬼啊,沒有這個類啊敲黑板!!!重點來了這個時候就有個語法哈,你想要表明這個XXX只是一個代指,但是具體是啥不知道,那就用<>表示,里面可以寫n個代指的東西,中間用逗號隔開,這樣就寫成了
public <XXX> XXX find(Long carId)
所以啊,<>只是代表一個定義符,里面定義了一堆變量,方便后續(xù)使用而已你在方法中定義,那這個變量的適用范圍就在這個方法里你要是在類里定義,嘿嘿,那這個變量整個類里都可以用哦,比如:
public class Car<X, XX>{ X x; XX xx; Long id; public X findX(){return x; }}回答2:
java的泛型方法的寫法,語法規(guī)定返回類型是T<T>是表明這是個泛型方法(我猜是和編譯有關的,畢竟Java泛型是擦除方式的
相關文章:
1. django - 后臺返回的json數(shù)據(jù)經(jīng)過Base64加密,獲取時用python如何解密~!2. angular.js - 如何通俗易懂的解釋“依賴注入”?3. node.js - node 客戶端socket一直報錯Error: read ECONNRESET,用php的socket沒問題哈。。4. tp6表單令牌5. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?6. 老哥們求助啊7. 我的html頁面一提交,網(wǎng)頁便顯示出了我的php代碼,求問是什么原因?8. css3 - 請問一下在移動端CSS布局布局中通常需要用到哪些元素,屬性?9. docker 17.03 怎么配置 registry mirror ?10. 在MySQL中新增字段時,報錯??
