自1990年代中期以来,我开始反对使用单字符约定。
我发现可读性更高的名称。这有助于理解泛型类型的实现和接口。
对于Java,歧义性问题似乎被夸大了。几乎没有全大写的类名。常量与类名不在同一上下文中使用。
的确,@ param
JavaDoc元素可以提供更长的描述。但是,JavaDoc不一定是可见的也确实如此。(例如,Eclipse中有一个内容助手,用于显示类型参数名称。)
例如,比较:
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> {尽管Sun /Oracle建议使用单字符名称作为约定,但是可以更改约定。挑战该公约的后果很小。如果您和您的团队更喜欢使用有意义的名称作为类型参数,那么我个人会这样做。
编辑(2015)
GoogleJava样式允许以T结尾的单字母名称和类似多字符类的名称。
5.2.8类型变量名
每个类型变量以两种样式之一命名:
单个大写字母,可选后跟单个数字(例如E,T,X,T2)
以类的形式使用名称(请参见第5.2.2节,类名称),后跟大写字母T(例如:RequestT,FooBarT)。



