Có, bạn có thể sử dụng tên nhiều ký tự cho các biến loại, miễn là chúng được phân biệt rõ ràng với tên lớp.
Điều này khác với quy ước được đề xuất bởi Sun với việc giới thiệu thuốc generic vào năm 2004. Tuy nhiên:
- Nhiều hơn một quy ước tồn tại.
- Tên nhiều ký tự phù hợp với các kiểu Java khác, chẳng hạn như kiểu của Google cho Java .
- Các tên dễ đọc là (ngạc nhiên!) Dễ đọc hơn.
Dễ đọc
Trong một số giao diện tôi đã viết tôi muốn đặt tên tham số loại chung với nhiều hơn một ký tự để làm cho mã dễ đọc hơn.
Khả năng đọc là tốt.
Đối chiếu:
public final class EventProducer<L extends IEventListener<E>,E>
implements IEventProducer<L,E> {
đến:
public final class EventProducer<LISTENER extends IEventListener<EVENT>,EVENT>
implements IEventProducer<LISTENER, EVENT> {
hoặc, với quy ước đa ký tự của 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> {
Phong cách Google
Các Google Java Style Guide cho phép cả hai tên đơn thư và đa nhân vật tầm cỡ như tên kết thúc bằng T.
5.2.8 Tên biến
Mỗi biến loại được đặt tên theo một trong hai kiểu:
Một bức thư vốn duy nhất, tùy theo sau là một số duy nhất (ví dụ như E
, T
, X
, T2
)
Một tên trong biểu mẫu được sử dụng cho các lớp (xem Phần 5.2.2, Tên lớp ), theo sau là chữ in hoa T (ví dụ : RequestT
, FooBarT
).
Các vấn đề
Nếu không có quy ước này, sẽ rất khó để phân biệt sự khác biệt giữa một biến loại và một tên giao diện hoặc lớp thông thường. - từ các hướng dẫn của Oracle, các loại Nói chung
Tên một ký tự không phải là cách duy nhất để phân biệt các tham số loại với tên lớp, như chúng ta đã thấy ở trên.
Tại sao không chỉ ghi lại ý nghĩa tham số loại trong JavaDoc?
Đúng là các @param
phần tử JavaDoc có thể cung cấp một mô tả dài hơn. Nhưng cũng đúng là JavaDocs không nhất thiết phải nhìn thấy. (Ví dụ: có một hỗ trợ nội dung trong Eclipse hiển thị tên tham số loại.)
Tên tham số loại nhiều ký tự không tuân theo quy ước của Oracle!
Nhiều quy ước ban đầu của Sun được tuân theo gần như phổ biến trong lập trình Java.
Tuy nhiên, quy ước đặc biệt này là không.
Sự lựa chọn tốt nhất trong số các công ước cạnh tranh là một vấn đề quan điểm. Hậu quả của việc chọn một quy ước khác với Oracle trong trường hợp này là không đáng kể. Bạn và nhóm của bạn có thể chọn một quy ước đáp ứng tốt nhất nhu cầu của bạn.