以下の3つのクラスがあると仮定して、HogeクラスでHogeHogeインスタンスを作成するときにFooクラスのメソッドを呼び出そうとするとis not an enclosing class.
のエラーが出てしまいます。
どうすればFooクラスのメソッドをprintHogeHoge()
メソッドで使用できるようになるでしょうか。
Hoge
1public class Hoge { 2 3 public static void main(String args[]){ 4 Foo f = new Foo() { 5 @Override 6 public void printFoo() { 7 HogeHoge hoge = new HogeHoge() { 8 @Override 9 public void printHogeHoge() { 10 Foo.this.printFoo(); 11 System.out.println("オーバーライドしたよ。"); 12 } 13 }; 14 } 15 }; 16 } 17}
Foo
1public class Foo { 2 3 public void printFoo() { 4 System.out.println("Fooクラスのメソッド"); 5 } 6}
HogeHoge
1public class HogeHoge { 2 3 public void printHogeHoge() { 4 System.out.println("HogeHogeクラスのメソッド"); 5 } 6}
追記
printFoo
メソッドをstatic
にすることなく使用できるようにしたいです。
さらに追記
すみません!問題が若干違っていました!
printFoo(){}
内でオーバーライドします、、

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/02 14:00
2019/06/02 14:21
退会済みユーザー
2019/06/03 23:04
2019/06/03 23:18 編集
退会済みユーザー
2019/06/03 23:59
退会済みユーザー
2019/06/04 00:03
2019/06/04 03:12
2019/06/04 03:16 編集
退会済みユーザー
2019/06/04 03:19
2019/06/04 03:21
2019/06/04 10:30
2019/06/04 11:16
2019/06/04 11:52