首先,我知道不要在类名中使用美元符号,因为内部类会在.class文件名中获得美元符号。我也看到了像this$0
这样的合成变量名,所以我倾向于像任何优秀的Java程序员那样避免使用标识符中的美元符号。
但是,我发现像<T>
这样的单字母类型参数令人反感。例如,如果我正在创建一个具有请求和响应参数的泛型类,那么我就会遇到命名问题。我应该使用什么,<TRequest, TResponse>
? <R1, R2>
?毛。
我开始做<$Request, $Response>
。它是可读的,它是独特的,我无法想象任何.class文件命名冲突。对我而言,似乎是让Java代码更具可读性的低调成果。任何JVM大师或有见地的开发人员都想告诉我为什么这是一个糟糕的想法?
编辑:至于可读性,我可能会因为使用其他语言(其中变量以美元符号为前缀),而泛型类型具有比类型更多变量的类型而被吸引到此。至于惯例,是的,我是粉丝;我想知道这个 是否会作为惯例工作,或者某些技术问题会阻止它。
答案 0 :(得分:3)
虽然你可以按照自己的意愿行事,但可以找到一般惯例in the Java Trails。
最常用的类型参数名称是:
- E - Element(Java Collections Framework广泛使用)
- K - Key
- N - 数字
- T - Type
- V - 值
- S,U,V等 - 第2,第3,第4类
您将在整个Java SE API中看到这些名称...
只有在以下情况下才能打破这些惯例:
明确在$的情况下,JLS有对 using $
as a generic identifier.
$
符号只能用于机械生成的源代码,或者很少用于访问旧系统上预先存在的名称。