我有一个类和一个内部类
01 public class A{
02 void test(){};
03 public class B{
04 void test(){
05 test();
06 }
07 }
08 }
好的,在第05行id喜欢访问A类的方法测试。但是我进入了一个循环,因为我不知道如何指定使用A类的方法。
有任何想法吗?
我有一个类和一个内部类
01 public class A{
02 void test(){};
03 public class B{
04 void test(){
05 test();
06 }
07 }
08 }
好的,在第05行id喜欢访问A类的方法测试。但是我进入了一个循环,因为我不知道如何指定使用A类的方法。
有任何想法吗?
01 public class A{
02 void test(){};
03 public class B{
04 void test(){
05 test(); // local B.test() method, so recursion, use A.this.test();
06 }
07 }
08 }
编辑:正如@Thilo 提到的:避免在外部类和内部类中使用相同的方法名称,这将避免命名冲突。
你可以这样做:
public class A{
void test(){
System.out.println("Test from A");
};
public class B{
void test(){
System.out.println("Test from B");
A.this.test();
}
}
public static void main(String[] args) {
A a = new A();
B b = a.new B();
b.test();
}
}
然后你有以下输出:
Test from B
Test from A
B 类不必是所谓的嵌套类来扩展 A 类,只需编写
public class B extends A {
...
}
比你可以调用 A 的 test() 之类的
super.test()
如果你像你那样调用 test() 这就是我们所说的递归,并且会冻结到审判日
如果你让它静态你可以打电话
A.test()
否则,您需要 A 的实例才能在 B 中使用
A a;
a.test();