java classname中的$前缀是什么意思?

时间:2012-01-29 04:35:58

标签: java

我有一个包含以下金块的应用程序的堆栈跟踪:

com.google.inject.internal.util.$ComputationException

班级名称前面的$表示什么?

4 个答案:

答案 0 :(得分:5)

在Java内部,$字符被视为有效的标识符字符,就像字母或数字一样。但是,它通常在生成内部类等内容时由编译器在内部使用。

来自Java Language Specification

  

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

答案 1 :(得分:4)

这意味着ComputationException包含在另一个类中,或者不公开显示。

请参阅http://www.retrologic.com/innerclasses.doc7.html

答案 2 :(得分:3)

$字符只能用于机械生成的源代码,或者很少用于访问旧系统上预先存在的名称。

答案 3 :(得分:0)

类似于Google(Guice,GSON)约定来区分内部类型。