Groovy 如何引用这个外部类?

Groovy 如何引用这个外部类?,groovy,inner-classes,Groovy,Inner Classes,我一直在搜索如何替换这样的呼叫 MyOuterClass.this 在嵌套类MyInnerClass中,但他们似乎没有讨论这个困难。我也没有通过谷歌搜索找到 那么,假设我有以下代码: class MyOuterClass { class MyInnerClass { } } 如何在MyInnerClass的方法内调用MyOuterClass的this指针 以下是一个尝试: public class Outer { def sayHello() {println "He

我一直在搜索如何替换这样的呼叫

MyOuterClass.this
在嵌套类MyInnerClass中,但他们似乎没有讨论这个困难。我也没有通过谷歌搜索找到

那么,假设我有以下代码:

class MyOuterClass {
    class MyInnerClass {
    }
}
如何在MyInnerClass的方法内调用MyOuterClass的this指针

以下是一个尝试:

public class Outer {
    def sayHello() {println "Hello !"}
    public class Inner {
        def tellHello(){
            Outer.this.sayHello()
        }
    }
}

def objOuter = new Outer()
def objInner = new Outer.Inner()
objInner.tellHello()
这里是错误跟踪:

java.lang.NullPointerException: Cannot invoke method sayHello() on null object
    at Outer$Inner.tellHello(inner_outer.groovy:5)
    at Outer$Inner$tellHello.call(Unknown Source)
    at inner_outer.run(inner_outer.groovy:12)

(我使用的是Groovy 2.4.5版本)。

唯一的问题是没有将外部对象传递给新的内部类语句,请使用以下命令:

def objOuter = new Outer()
def objInner = new Outer.Inner(objOuter)
而不是:

def objOuter = new Outer()
def objInner = new Outer.Inner()
而且你的代码会起作用


希望这有帮助,

您能发布失败的代码,以及您得到的异常吗?因为它是在大型android活动类中(从Java代码翻译成Groovy),所以我尝试获得一个更简单的示例。然后我将编辑我的问题。我添加了一个片段来说明我的困难和它的轨迹。