Method Local Inner Class
-
09-06-2019 - |
Question
public class Test {
public static void main(String[] args) {
}
}
class Outer {
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
}
}
Can someone tell me how to print the message from bMethod
?
Solution
You can only instantiate MethodLocalInner
within aMethod
. So do
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
MethodLocalInner foo = new MethodLocalInner(); // Default Constructor
foo.bMethod();
}
OTHER TIPS
Within the method aMethod after the declaration of the class MethodLocalInner you could for instance do the following call:
new MethodLocalInner().bMethod();
Why don't you just create an instance of MethodLocalInner
, in aMethod
, and call bMethod
on the new instance?
This might get you started, (I don't have anything handy to test with). Notice the modified constructor syntax:
http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html
You need to call new Outer().aMethod() inside your main method. You also need to add a reference to MethodLocalInner().bMethod() inside your aMethod(), like this:
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();
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow