次のコードを書きました
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 は静的クラスであるため、そのオブジェクトはありません。最初の質問に対する私のポイント)