Java Generics,<c>等于<t>?</t> </c>

时间:2012-03-21 14:39:42

标签: java generics

如果我有一个Java泛型类......

public class EntityStuff<C> extends AbstractPropertyStuff<C> implements Serializable {

}

这与......相同吗?

public class EntityStuff<T> extends AbstractPropertyStuff<T> implements Serializable {

}

这封信是否有意义?

7 个答案:

答案 0 :(得分:43)

不,没有意义。

有些约定(见Java Generics Tutorial):

E - Element (used extensively by the Java Collections Framework)
K - Key
N - Number
T - Type
V - Value
S, U, V etc. - 2nd, 3rd, 4th types

答案 1 :(得分:10)

完全一样,信没有任何意义。实际上,type参数可以是任何有效的Java标识符,因此:

EntityStuff<T>
EntityStuff<t>
EntityStuff<TTT>
EntityStuff<ttt>
EntityStuff<_t23>

都是合法的。

答案 2 :(得分:3)

CT只是变量名称。它们不应该是Java关键字,否则它们对编译器没有任何特殊含义。

答案 3 :(得分:2)

TC只是type参数的标识符,因此这些语句是相同的。

您可以使用其他更有意义的标识符,例如TResultTModelType,以使其更具表现力,实际上我鼓励您这样做,特别是如果您有多个类型参数。< / p>

答案 4 :(得分:0)

不,这封信只是类型参数的名称。你用什么字母都没关系。事实上,它不必只是一个字母,如果你愿意,你可以使用更长的名字;使用单个字母表示类型参数只是一种惯例。

答案 5 :(得分:0)

否 - 类型参数的名称无意义

答案 6 :(得分:0)

两者都一样。这个字母可以是一个单词,但你会发现使用T代表键,K代表键,V代表值(等)使阅读更容易。