我需要使用内部类外部类的this
指针。
我不知道怎么做而不保存this
指针。还有其他选择吗?
class outerclass {
outerClass thisPointer;
outerclass () {
//
// NOTE: I am saving this pointer here to reference
// by the inner class later. I am trying to find
// a different alternative instead of saving this pointer.
//
thisPointer = this;
}
class innerClass {
void doSomething () {
//
// is there a way to reference the outter class
// without having to save the thisPointer from
// the outter class.
// NOTE someObject is a class outside of the
// outterclass control.
//
someObject.someMethod (thisPointer);
}
}
}
答案 0 :(得分:4)
使用语法NameOfOuterClass.this
:
void doSomething () {
someObject.someMethod(outerClass.this);
}
答案 1 :(得分:1)
outclass.this
应该这样做。
我假设你的外部类名是outerclass。按照惯例,您应该使用大写字母
启动类名如果我没有正确理解你的例子,那么这里有一些示例代码。这里将外部类(Test1)中的a值赋给内部类中的局部变量(Test2)
public class Test1 {
private int a =42;
private class Test2 {
public void a() {
int i = Test1.this.a;
}
}