如果我有一个Java泛型类......
public class EntityStuff<C> extends AbstractPropertyStuff<C> implements Serializable {
}
这与......相同吗?
public class EntityStuff<T> extends AbstractPropertyStuff<T> implements Serializable {
}
这封信是否有意义?
答案 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)
C
和T
只是变量名称。它们不应该是Java关键字,否则它们对编译器没有任何特殊含义。
答案 3 :(得分:2)
T
或C
只是type参数的标识符,因此这些语句是相同的。
您可以使用其他更有意义的标识符,例如TResult
或TModelType
,以使其更具表现力,实际上我鼓励您这样做,特别是如果您有多个类型参数。< / p>
答案 4 :(得分:0)
不,这封信只是类型参数的名称。你用什么字母都没关系。事实上,它不必只是一个字母,如果你愿意,你可以使用更长的名字;使用单个字母表示类型参数只是一种惯例。
答案 5 :(得分:0)
否 - 类型参数的名称无意义
答案 6 :(得分:0)
两者都一样。这个字母可以是一个单词,但你会发现使用T代表键,K代表键,V代表值(等)使阅读更容易。