请问ab和a$b有什么区别?

发布于 2024-12-29 12:17:34 字数 112 浏览 0 评论 0原文

有时我会遇到诸如 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云淡风轻 2025-01-05 12:17:34

$ 文件的含义是,根据 JLS

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

类文件上的$ 表明(例如AClass$BClass.classBClass 嵌套在AClass 内。

AB 仅在代码级别,而 A$B 在生成的类级别。

The $ file means, according to the JLS:

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

The $ on the class file states that (e.g. AClass$BClass.class) BClass is nested inside AClass.

A.B is only on code level while A$B is on generated class level.

牵你手 2025-01-05 12:17:34

$ 在 Java 中没有特殊含义。它可用于命名每个变量或方法,也可作为第一个(或唯一)字符。例如,下面的类是完全合法的。

public class Test {

    private int $;

    private int $field;

    private int my$field;

    private void $() {
    }

    private void $method() {
    }

    private void my$method() {
    }

}

但是您不能使用 $ 来命名类。当 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.

public class Test {

    private int $;

    private int $field;

    private int my$field;

    private void $() {
    }

    private void $method() {
    }

    private void my$method() {
    }

}

However you can't use $ to name a class. When the Java compiler encounters an inner class B inside a class A, the resulting .class file will be named A$B.class. So naming a class using a $ character will result in a compile error.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文