メソッドローカル内部クラス
-
09-06-2019 - |
質問
public class Test {
public static void main(String[] args) {
}
}
class Outer {
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
}
}
誰かがメッセージを印刷する方法を教えてください bMethod
?
解決
インスタンス化のみ可能です MethodLocalInner
内で aMethod
. 。そうします
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
MethodLocalInner foo = new MethodLocalInner(); // Default Constructor
foo.bMethod();
}
他のヒント
メソッド内で 方法 クラスの宣言後 メソッドLocalInner たとえば、次の呼び出しを実行できます。
new MethodLocalInner().bMethod();
のインスタンスを作成してみてはいかがでしょうか MethodLocalInner
, 、 で aMethod
, 、そして電話します bMethod
新しいインスタンスで?
これで始めることができるかもしれません (テストに便利なものは何もありません)。変更されたコンストラクター構文に注目してください。
http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html
メインメソッド内で new inner().aMethod() を呼び出す必要があります。次のように、aMethod() 内に MethodLocalInner().bMethod() への参照を追加する必要もあります。
public class Test {
public static void main(String[] args) {
new Outer().aMethod();
}
}
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
new MethodLocalInner().bMethod();
}
所属していません StackOverflow