Так, ви можете використовувати імена з кількома символами для змінних типів, якщо вони чітко відрізняються від імен класів.
Це відрізняється від конвенції, запропонованої Sun, щодо впровадження дженериків у 2004 році. Однак:
- Існує більше однієї конвенції.
- Імена з кількома символами відповідають іншим стилям Java, наприклад стилю Google для Java .
- Читані назви (здивовано!) Легше читати.
Читабельність
У деяких інтерфейсах я писав, що хотів би назвати параметр загального типу з більш ніж одним символом, щоб зробити код більш читабельним.
Читання - це добре.
Порівняйте:
public final class EventProducer<L extends IEventListener<E>,E>
implements IEventProducer<L,E> {
до:
public final class EventProducer<LISTENER extends IEventListener<EVENT>,EVENT>
implements IEventProducer<LISTENER, EVENT> {
або, за умовами Google про багато символів:
public final class EventProducer<ListenerT extends IEventListener<EventT>,EventT>
implements IEventProducer<ListenerT, EventT> {
public final class EventProducer<ListenerT extends IEventListener<EventT>,EventT>
implements IEventProducer<ListenerT, EventT> {
Стиль Google
Керівництво Стиль Google Java дозволяє обидві назви однієї літери і мульти-символьний клас , як імена , що закінчуються в T.
5.2.8 Введіть імена змінних
Кожна змінна типу названа в одному з двох стилів:
Одна буква, необов'язково з подальшим однією цифрою (наприклад E
, T
, X
, T2
)
Ім'я в формі , використовуваної для класів (дивіться Розділ 5.2.2, імена класів ), а потім букви Т (приклади: RequestT
, FooBarT
).
Випуски
"Без цієї конвенції було б важко визначити різницю між типовою змінною та звичайною назвою класу чи інтерфейсу". - з навчальних посібників Oracle, "Загальні типи"
Імена з одним символом - не єдиний спосіб відрізнити параметри типу від імен класів, як ми бачили вище.
Чому б просто не задокументувати значення параметра типу у JavaDoc?
Це правда, що @param
елементи JavaDoc можуть дати більш довгий опис. Але також правда, що JavaDocs не обов'язково видно. (Наприклад, у програмі Eclipse є допомога щодо вмісту, яка показує назви параметрів типу.)
Імена параметрів типу "багато символів" не відповідають умовам Oracle!
Багато програм оригінальних конвенцій Sun дотримуються майже повсюдно в програмуванні Java.
Однак цієї конкретної конвенції немає.
Найкращий вибір серед конкуруючих конвенцій - це питання думки. Наслідки вибору конвенції, відмінної від Oracle, у цьому випадку незначні. Ви та ваша команда можете вибрати конвенцію, яка найкраще відповідає вашим потребам.