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

**在查看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讲师

répondre à tous(3)
Peter_Zhu

Tout est pareil, il n'y a pas de différence. T, K, V, E sont juste le même nom. Les différents noms servent simplement à nous indiquer la signification de ce type de données.

洪涛

? est un mot-clé, ce qui signifie qu'il correspond à n'importe quel type. Il n'y a aucune différence avec d'autres lettres telles que T, K, V, etc. Vous pouvez simplement choisir la lettre que vous aimez.

左手右手慢动作

Peu importe ce que vous utilisez. Si vous voulez vraiment savoir, demandez à l'auteur pourquoi il utilise ces lettres.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal