spring - Java源代码中泛型的提问?
PHP中文网
PHP中文网 2017-04-17 17:51:41
0
3
269

**在查看JDK源代码的时候,常会发现如下几种类型:?、T、Object、K、V、E,众所周知,?代表的是不确定的Java类型,T代表实际使用之前就已经确定的Java类型,Ojbect是所有类的基类,在强制转换的时候,可以被频繁使用,K和V表示的是key,value,E代表的是Element,Element是元素的意思,表示它是作为一个集合的元素。但是源码中有的时候用的是E,有的时候用的是V,它们在表示单一的类型的时候有什么区别呢?
比如:**
1.Callable接口,为什么用的是V

  public interface Callable<V> {
        V call() throws Exception;
    }

2.List接口中为什么使用E

public interface List<E> { 

           void add(E x); 

           Iterator<E> iterator(); 

}

得出的结论:V、E、T代表的是一种类型,并没有实质的区分。就好像在数学中,变量x y z都表示变量名,在同一环境下,区分开来是三个不同的变量。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
Peter_Zhu

用什麼都是一樣的,沒有差別,T、K、V、E他們只是一個名而已,取不同的名只是為了告訴我們這個類型資料所代表的意思。

洪涛

?是個關鍵字,表示符合任意類型,其他的T,K,V之類的都沒有差別,自己選擇喜歡的字母就可以了。

左手右手慢动作

用什麼都一樣,如你真想知道你去問作者為什麼要用這幾個字母。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!