在java标识符中使用不常见的字符“$”和“\”

在java标识符中使用不常见的字符“$”和“\”,java,design-patterns,coding-style,naming-conventions,Java,Design Patterns,Coding Style,Naming Conventions,在Java标识符中使用这些不常见的字符有什么好处吗? 从 “Java字母”包括大写和小写ASCII拉丁字母 A-Z(\u0041-\u005a)和A-Z(\u0061-\u007a),以及 原因,ASCII下划线(u0,或\u005f)和美元符号($,或 \u0024)。$character只能在文本中使用 生成的源代码,或者很少访问 遗留系统 这是否意味着这些字符已过时?或者它们只是为特殊用例保留的\uu通常用于静态字段名 我正在尝试构建一个小型的库,它的行为将基于字段和方法名。它将接收对象解

在Java标识符中使用这些不常见的字符有什么好处吗? 从

“Java字母”包括大写和小写ASCII拉丁字母 A-Z(\u0041-\u005a)和A-Z(\u0061-\u007a),以及 原因,ASCII下划线(u0,或\u005f)和美元符号($,或 \u0024)。$character只能在文本中使用 生成的源代码,或者很少访问 遗留系统

这是否意味着这些字符已过时?或者它们只是为特殊用例保留的<代码>\uu通常用于静态字段名

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

更新


我故意没有提到unicode字符。我认为标识符名称中的Unicode字符至少不合适。p> 下划线很好。不过,我还是会避免花10美元<代码>$name可能与某些隐藏/生成的字段冲突


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

还有更多的有效字符。我认为除了第一个字符之外,你还可以使用数字。你可以使用任何Unicode字母,
呢?
。我更新了我的问题。当然,我们也可以使用数字。但我认为数字在标识符名称中并不少见。一些Java商店使用下划线前缀来表示类全局字段。出于某种原因,这些商店对“this”有一种厌恶。@GilbertLeBlanc:他们可能借用了C惯例,即使用下划线将某些结构字段标记为“private”。(这实际上并没有阻止其他代码访问这些字段,但它清楚地表明它们不应该访问。)在Java中,人们通常将所有字段都设置为私有,因此这种约定就没有什么意义了。