Подтвердить что ты не робот

Java Generics, <C> равна <T>?

Если у меня был общий класс Java...

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

}

Это то же самое, что...

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

}

имеет ли значение какое-либо значение?

4b9b3361

Ответ 1

Нет, нет никакого значения.

Существуют соглашения (см. Учебник Java Generics):

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

Ответ 2

Точно так же письмо не имеет никакого значения. Фактически, параметр типа может быть любым допустимым идентификатором Java, поэтому:

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

являются законными.

Ответ 3

C и T являются просто именами переменных. Они не должны быть ключевыми словами Java, но в противном случае они не имеют никакого специального значения для компилятора.

Ответ 4

T или C - это всего лишь идентификатор параметра типа, и поэтому эти утверждения одинаковы.

Вы можете использовать другие, более значимые идентификаторы, такие как TResult или TModelType, чтобы сделать его более выразительным, и я бы рекомендовал вам это сделать, особенно если у вас есть несколько параметров типа.

Ответ 5

Нет, буква - это просто имя параметра типа. Неважно, какое письмо вы используете. Фактически, это не должно быть просто одной буквой, вы можете использовать более длинное имя, если хотите; использование одной буквы для параметров типа - это просто соглашение.

Ответ 6

Нет - имя параметра типа не имеет значения

Ответ 7

То же самое. Буква может быть словом, но вы найдете, используя T для типа и K для ключа, а значение V для значения (и т.д.) Упрощает чтение.