通用和方法

时间:2013-01-04 18:10:52

标签: java

为什么我必须这样做?

public <T> void myMethod(MyClass<T> value){

}

为什么我必须两次提及<T>

4 个答案:

答案 0 :(得分:1)

第一个<T>声明您的方法具有通用参数。

第二个<T>指定了MyClass<>类的泛型参数的值。 (就像MyClass<string>

答案 1 :(得分:1)

第一个<T>声明您正在使用模板化方法。如下所述:

public void myMethod(MyClass<?> value){

}

您也可以在类级别声明泛型参数:

public class MyClass<T> {

    public void myMethod(MyClass<T> value){
    }
}

答案 2 :(得分:1)

外部&lt; T&gt;说'这是一种通用方法'并且还让你有机会在T上放置边界,例如T扩展Comparable&lt; T&gt;。您不希望为使用T的每个参数重复所有这些。

答案 3 :(得分:0)

实际上,第一个定义了您的函数中使用了泛型类,第二个MyClass<T>值表示TList<String>中类的泛型类型String { {1}}可以是您的T