请问ab和a$b有什么区别?
有时我会遇到诸如 aClass$field 而不是 aClass.field 这样的表达式。在java中它是什么意思?也许这是一个原始的问题,但在网上搜索 $ 是不可能的。当然它会给出非编程答案。所以,请帮忙。
Sometimes I met such expressions as aClass$field instead of aClass.field. What does it mean in java? Maybe it is a primitive question, but it is impossible to search the web for $. And surely it would give non-programming answers. So, please, help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
$
文件的含义是,根据 JLS:类文件上的
$
表明(例如AClass$BClass.class
)BClass
嵌套在AClass
内。AB
仅在代码级别,而A$B
在生成的类级别。The
$
file means, according to the JLS:The
$
on the class file states that (e.g.AClass$BClass.class
)BClass
is nested insideAClass
.A.B
is only on code level whileA$B
is on generated class level.$
在 Java 中没有特殊含义。它可用于命名每个变量或方法,也可作为第一个(或唯一)字符。例如,下面的类是完全合法的。但是您不能使用
$
来命名类。当 Java 编译器在类A
中遇到内部类B
时,生成的.class
文件将被命名为A$B。类。因此,使用
$
字符命名类将导致编译错误。$
has no special meaning in Java. It can be used to name every variable or method, also as the first (or only) character. In example, the following class would be perfectly legal.However you can't use
$
to name a class. When the Java compiler encounters an inner classB
inside a classA
, the resulting.class
file will be namedA$B.class
. So naming a class using a$
character will result in a compile error.