我写了以下代码
public class Reader1 {
private int pageNumber;
private class ReaderName1{
public int getPage(){
return pageNumber;
}
}
static class ReaderFound{
}
}
当我在我得到的编译代码上使用 Java 类文件反汇编程序 javap
1. for Reader1.class
class Reader1$ReaderName1 {
final Reader1 this$0;
private Reader1$ReaderName1(Reader1);
public int getPage();
}
2. for Reader1$ReaderName1.class
public class Reader1 {
private int pageNumber;
public Reader1();
static int access$000(Reader1);
}
3. for Reader1$ReaderFound.class
class Reader1$ReaderFound {
Reader1$ReaderFound();
}
我的问题是,既然 ReaderFound 是一个静态类,它怎么会有一个默认构造函数?如果是,为什么?是否允许?
如果允许,在 Reader1$ReaderFound 类中可以找到什么样的构造函数,因为它不能是静态的。(另外,由于构造函数被隐式调用来初始化一个对象,并且由于 ReaderFound 是一个静态类,所以我们不会有它的对象。我对第一个问题的观点)