了解Java通用类型

Jas*_*per 4 java generics

考虑这个泛型代码:

interface Collection<E>  {  
   public void add (E x);  
   public Iterator<E> iterator(); 
} 
Run Code Online (Sandbox Code Playgroud)

还有这个:

public class MyClass<V> {
    V v;
    setSomeValue(V val) {
       v=val;
    }

    V getSomeValue() {
        return v;
    }
 }
Run Code Online (Sandbox Code Playgroud)

我的问题:你在尖括号那些信: <V><E> 具有特定的含义.我可以使用任何英文字母.即他们可以 <A><Q>

Mic*_*rry 8

它们必须是有效的Java标识符(不一定只是注释中指出的单个字母),从技术上讲,您可以使用任何您喜欢的标识符,并且您的代码将编译并运行正常(如果当然没有其他错误!)

虽然坚持惯例是好的 - 这往往是单个大写字母.一些常见的有E,T,KV,分别站立元素,类型,键和价值-你的使用情况很可能融入其中的一个类别,在这种情况下,我会用那些信.在上面的例子中,Collection该类使用,E因为它包含元素.