日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

020_泛型变量的类型限定

發布時間:2025/4/17 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 020_泛型变量的类型限定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 泛型變量的類型限定

1.1. 實例

public static <T> T get(T t1,T t2) { if(t1.compareTo(t2) >= 0); // 編譯錯誤 return t1; }

1.2. 因為, 在編譯之前, 也就是我們還在定義這個泛型方法的時候, 我們并不知道這個泛型類型T, 到底是什么類型, 所以, 只能默認T為原始類型Object。所以它只能調用來自于Object的那幾個方法, 而不能調用compareTo方法。

1.3. 可我的本意就是要比較t1和t2, 怎么辦呢? 這個時候, 就要使用類型限定, 對類型變量T設置限定(bound)來做到這一點。我們知道, 所有實現Comparable接口的方法, 都會有compareTo方法。所以, 可以對做如下限定:

public static <T extends Comparable<T>> T get(T t1,T t2) { // 添加類型限定 if(t1.compareTo(t2)>=0); return t1; }

2. 類型限定在泛型類、泛型接口和泛型方法中都可以使用, 不過要注意下面幾點:

2.1. 不管該限定是類還是接口, 統一都使用關鍵字 extends

2.2. 可以使用&符號給出多個限定, 比如:

public static <T extends Comparable<T>&Serializable> T get(T t1,T t2)

2.3. 如果限定既有接口也有類, 那么類必須只有一個, 并且放在首位置:

public static <T extends Object&Comparable&Serializable> T get(T t1,T t2)

?

總結

以上是生活随笔為你收集整理的020_泛型变量的类型限定的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。