gpt4 book ai didi

java - 变量名中的$是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 20:29:03 25 4
gpt4 key购买 nike

最近我读到 Java 变量名中允许使用符号 $,但具有特殊含义。不幸的是,没有提到这个特殊的含义是什么。

所以我在这里问:Java中变量名中$的特殊含义是什么?

这是来自

的确切报价

Java: An Introduction to Problem Solving and Programming

来自沃尔特·萨维奇:

Java does allow the dollar sign symbol $ to appear in an identifier, but these identifiers have a special meaning, so you should not use the $ symbol in your identifiers.

最佳答案

$ 由编译器在内部用于修饰某些名称。维基百科gives the following example :

public class foo {
class bar {
public int x;
}

public void zark () {
Object f = new Object () {
public String toString() {
return "hello";
}
};
}
}

编译这个程序会产生三个.class文件:

  • foo.class,包含主(外部)类foo
  • foo$bar.class,包含命名的内部类 foo.bar
  • foo$1.class,包含匿名内部类(方法 foo.zark 的本地)

所有这些类名都是有效的(因为 $ 符号在 JVM 规范中是允许的)。

类似地,javac 在一些自动生成的变量名中使用$:例如,this$0 等用于从内部类到外部类的隐式 this 引用。

最后,the JLS recommends the following :

The $ character should be used only in mechanically generated source code or, rarely, to access preexisting names on legacy systems.

关于java - 变量名中的$是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7484210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com