`
kanwoerzi
  • 浏览: 1643111 次
文章分类
社区版块
存档分类
最新评论

Java编译后生成的若干个class文件名称解析

 
阅读更多

在java中,如果在一个类中定义了内部类,则会生成: superthis.class的文件,如果给某个控件添加了Listener事件,则会生成 superi.class的文件(其中i为Listener的个数)。

例如:下面的程序:


编译后生成的class文件有:

  • a.class a$1.class //jButton1.addActionListener
  • a$2.class //jButton2.addActionListener
  • a$3.class //jButton3.addActionListener a
  • $b.class a$c.class a$c1.class

但如果a.java这样定义: class a{ } class b{ } 注意为同一个文件: 刚编译后生成b.class,a.class 而不是a$b.class 2 beyond compare来比较两种方式的编译结果,发现多出的两个类是GameClient$1.Class和GameBoard$1.Class。

1、确认项目最终使用的Java类的编译器。如果可能,尽可能使用javac生成结果应用程序,或是与客户达成一致。

2、尽量明确的书写缺省构造函数及其可见性。

3 、对于引用中的interface--implement在实现类中没有缺省的构造函数,在调用的同时,就会产生额外的文件。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics