这是一种不好的风格,并且$
在 Java 中的任何标识符中使用都有潜在的风险。有风险的原因是该$
字符是为 Java 工具链和第三方语言工具的使用而保留的。
- Java 编译器在内部和嵌套类的“内部”类名中使用它。
- Java 编译器在合成属性的名称中使用它。
- 它可以被第三方代码生成器(例如注释处理器)用于各种目的。
- 它可以被针对 JVM 平台的其他语言使用,并且可能需要与您的代码共存。
目前,您可能不会遇到纯$
类名的技术问题(至少就标准 Java 工具链而言)。但总有可能在未来发生变化:
- 他们(有效地)保留了更改此1的权利。
- 示例中有这样做的先例
_
。
如果您真的,真的需要一个单字符的类名,最好安全地使用它并使用F
或Z
其他没有保留的东西。
但老实说,我认为你最好尝试实现(或只是使用)一种真正的函数式语言,而不是试图将函数式编程“系统”硬塞到 Java 中。或者,在正式发布之前切换到 Java 8。'因为我拒绝阅读/维护一个看起来像 jquery 的 Java 代码库。
我并不是要为 Java 创建一个函数库,只是想创建一个库来维护我使用的一些常用实用程序。再说一次,我是极简主义的倡导者,我觉得像 apache commons 这样的东西很糟糕。添加了功能性内容以帮助我更轻松地操作集合。
如果它是你的代码,你可以做你喜欢的事情。做出自己的决定。根据你的意见行事。做一个“冒险者”... :-)。(我们对$
, 等等的建议......没有实际意义。)
但是,如果您正在为客户或雇主编写此代码,或者打算创建(可行的)开源产品,那么您需要考虑其他人的意见。例如,如果你在其他地方找到一份薪水更高的工作,你的老板需要对你的代码的可维护性有一个明智的看法。一般来说,下一个人能够弄清楚,保持你的代码,新鲜等等......还是会被扔进垃圾箱?
1 - JLS §3.8规定“该$
字符只能用于机械生成的源代码”。这就是说“使用它,后果自负”。假设是,如果标准工具链使用裸代码,则构建自己的源代码生成器的人可以更改$
它们……但是更改大量手写代码会更加困难,这将成为升级的障碍。