gpt4 book ai didi

java - $ 在 Java 类名中有什么影响

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:38 24 4
gpt4 key购买 nike

我最近看到了谷歌库 Gson 的源代码,看到了一些非常奇怪的东西(IMO)。在 com.google.gson.internal 包中有 2 个以“$”开头的类。

例如

public final class $Gson$Types { ... }

美元符号对开发有影响还是只是对外部开发人员说“请不要使用,因为它是内部类”?

最佳答案

您可以在标识符中使用任何货币符号或连续字符。

通过使用 $,它表明它是生成的,例如由构建生成,或仅供内部使用。

Uses for special characters in Java code

Hidden code

如果您与生成的类有冲突,它只会导致问题,例如

class A {
class B {
}
}
class A$B {
}

报告

error: duplicate class: A.B

编译器生成的类不以 $ 开头,这可能是这样做的原因。

在 Windows 7 中,可以出现在类中的特殊字符是

public static void main(String... args) throws IOException {
for (char ch = 0; ch < Character.MAX_VALUE; ch++) {
if (Character.isJavaIdentifierStart(ch) && !Character.isLetter(ch))
System.out.println("interface " + ch + " { }");
}
}

interface $ { }
interface _ { }
interface ¢ { }
interface £ { }
interface ¤ { }
interface ¥ { }
interface € { }

Java 允许使用其他特殊字符,但不支持将其用作文件名。这可能取决于操作系统,也可能取决于语言。

关于java - $ 在 Java 类名中有什么影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516412/

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