java中.class文件命名规则
会关注这个问题,一般是在遍历 .class 文件过程中出问题,编译文件目录下,有不少文件名是带 $ 符号的。
这些对象大都是一些内部类、匿名对象,大都不能通过 Class.forFame(String str) 实例化。
- 内部类的 class 文件命名是:主类+$+内部类名
- 匿名类的 class 文件命名是:主类+$+(1,2,3....)
可以用下面的代码,感受一下效果。
- 普通的全类名:com.yt.test.Outer2
- 匿名内部类:com.yt.test.Outer1$1
- 内部类:com.yt.test.Outer2$Inner
public class Outer1 {
public void test(){
JButton btn=new JButton("test");
// ActionListener 将编译成 Outer1$1
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("test");
}
});
}
}
public class Outer2 {
// Inner 将编译成 Outer2$Inner
public class Inner{
}
}
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!