这是不好的样式,
$在Java中的任何标识符中使用都有潜在的风险。冒险的原因是该
$字符保留供Java工具链和第三方语言工具使用。
- Java编译器在内部和嵌套类的“内部”类名称中使用它。
- Java编译器以合成属性的名称使用它。
- 第三方代码生成器(例如,注释处理器)可以将其用于各种目的。
- 面向JVM平台的其他语言也可以使用它,并且可能需要与您的代码共存。
目前,您可能没有普通
$类名的技术问题(至少在标准Java工具链方面)。但是总有可能在将来改变这种情况:
- 他们(有效地) 保留 更改此 权利 1。
_
示例中有这样做的先例。
如果确实需要一个字符的类名,最好安全地使用它或使用
F或
Z保留一些其他名称。
但老实说,我认为您最好尝试实现(或仅使用)一种真正的功能语言,而不是尝试将功能编程“系统”引入Java。或者,也许可以在正式发布之前切换到Java
8。Cos I 拒绝 阅读/维护看起来像jquery的Java代码库。
我并不是要为Java创建功能库,而只是想创建一个库来维护我使用的一些通用实用程序。同样,我是极简主义者的拥护者,并且对apache
commons之类的东西感到厌倦。添加了功能性内容以帮助我更轻松地操作集合。
如果这是您的代码,则可以执行所需的操作。自己做决定。根据您的意见采取行动。成为“冒险者” … :-)。(我们对
$等的建议尚无定论。)
但是,如果您正在为客户或雇主编写此代码,或者打算创建(可行的)开源产品,那么您需要考虑其他人的意见。例如,如果您在其他地方找到一份薪水更高的工作,您的老板需要就代码的可维护性有一个知情的意见。通常,下一个家伙将能够弄清楚它,保留您的代码,更新等…还是将其委托给垃圾箱?
1-
JLS§3.8指出“
$字符只能在机械生成的源代码中使用”。那就是说“使用它的后果自负”。假设是,如果标准工具链只使用裸机,则构建自己的源代码生成器的人可以 更改
它们
$,但是更改许多手写代码比较困难,这将是升级的障碍。



