电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

内部类标识符


发布日期:2023/10/22
 

由于每个类都会生成一个class文件用于容纳与如何创建这个类型的对象有关的所有信息(这种信息产生了一个名为Class对象的元类)所以大家或许会猜到内部类也必须生成相应的class文件用来容纳与它们的Class对象有关的信息这些文件或类的名字遵守一种严格的形式先是封装类的名字再跟随一个$再跟随内部类的名字例如由InheritInnerjava创建的class文件包括

InheritInnerclass

WithInner$Innerclass

WithInnerclass

如果内部类是匿名的那么编译器会简单地生成数字把它们作为内部类标识符使用若内部类嵌套于其他内部类中则它们的名字简单地追加在一个$以及外部类标识符的后面

这种生成内部名称的方法除了非常简单和直观以外也非常健壮可适应大多数场合的要求(注释③)由于它是Java的标准命名机制所以产生的文件会自动具备与平台无关的能力(注意Java编译器会根据情况改变内部类使其在不同的平台中能正常工作)

但在另一方面由于$也是Unix外壳的一个元字符所以有时会在列出class文件时遇到麻烦对一家以Unix为基础的公司——Sun——来说采取这种方案显得有些奇怪我的猜测是他们根本没有仔细考虑这方面的问题而是认为我们会将全部注意力自然地放在源码文件上

上一篇:黑马程序员面向对象之多态

下一篇:UserAgent:通过浏览器获取用户浏览器和电脑信息