3

在 Java 标识符中使用这些不常见的字符有什么问题吗?来自Java 语言规范

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

这是否意味着这些字符已经过时了?或者它们只是为特殊用例保留的。_常用于静态字段名。

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

更新

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

4

1 回答 1

2

下划线完全没问题。不过我会避免使用美元。$name可能与某些隐藏/生成的字段发生冲突。

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

于 2013-03-07T19:16:14.340 回答