在Java标识符中使用不常见的字符`$`和`_`

时间:2013-03-07 19:11:34

标签: java design-patterns coding-style naming-conventions

在Java标识符中使用这些不常见的字符是否有任何问题? 来自Java Language Specification

  

“Java字母”包括大写和小写ASCII拉丁字母   A-Z(\ u0041- \ u005a)和a-z(\ u0061- \ u007a),以及历史   原因,ASCII下划线(_,或\ u005f)和美元符号($,或   \ u0024)。 $字符只能在机械上使用   生成源代码,或者很少访问预先存在的名称   遗留系统。

这是否意味着这些字符已过时?或者它们仅用于特殊用例。 _通常用于静态字段名称。

我正在尝试构建一个基于字段和方法名称的行为的小型库。它将接收对象解析其字段名称并决定如何操作 我也可以使用注释。但序列化存在困难(JAXB等)。此外,使用描述性字段名称(约定优于配置)有时更容易,更快捷。因此,在这种情况下,这些很少使用的字符可能很有用。

更新

我故意没有提到unicode字符。我认为标识符名称中的unicode字符至少是不合适的。

1 个答案:

答案 0 :(得分:2)

下划线非常好。我会避免$。 $name可能会与某些隐藏/生成的字段冲突。

如果您的库要求用户类中的特殊字段用下划线标记,那可能没问题。但是你可以想象两个库有相似的要求并且在冲突中运行。