Javaでスタンドアロンの内部クラスを定義する方法はありますか?
注意: C# のように「部分的な」クラスは必要ありません。完全なクラスが必要ですが、内部です。
将来のJavaでそのような構文を導入する計画はありますか?
package tests.java;
public class Try_InnerClassStandalone_01 {
public static void main(String[] args) {
Outer O1 = new Outer(12);
Outer O2 = new Outer(13);
Outer.Inner i1 = O1.new Inner();
System.out.println(i1.getData());
InnerExt i2 = O1.new InnerExt();
System.out.println(i2.getData());
}
}
class Outer {
class Inner {
int getData() {
return data;
}
}
public int data;
public Outer(int data) {
this.data = data;
}
}
class InnerExt extends Outer.Inner {
}
アップデート
静的内部クラスと非静的内部クラスの違いは何ですか。そして、メリットを活かしてデメリットを回避したい。
利点は、Outer.this
暗黙的に参照できることです (コードが短くなります)。
欠点は、内部クラスを外部クラス定義の境界に入れる必要があることです (モジュール性がない)。