Java FAQ:メソッドの中でメソッドを定義?
Java FAQ:S011 Q-24
public class C2008050300 { public static void main(String[] args) { class C2008050301 { static void foo() { System.out.println("foo"); } } C2008050301.foo(); } }
で、
C2008050300.java:10: 内部クラスが static 宣言を持つことはできません。 static void foo() { ^ エラー 1 個
- 同じように書いたつもりなのだが?
- クラス内部に書かないメソッドってあるんだっけ?
public class C2008050310 { public static void main(String[] args) { class C2008050311 { void foo() { System.out.println("foo"); } } new C2008050311().foo(); } }
で、
foo
「new C2008050311().foo();」を「new C2008050311.foo();」と間違えると「シンボルを解釈処理できません」と言われてしまう…