如何使用'this'作为另一个对象的参数?

Joh*_*ale -1 java reference this parameter-passing

首先我知道这一定很简单,我一直在尝试在Stackoverflow.com和Google上阅读类似的问题,但我仍然无法让我的程序运行.

我很快写了一篇关于我的程序试图做的摘要:

    public class One{

    public One(){
        Two t = new Two(this);
    }

    public void doSomething(){
        sout("HERE");
    }

    public static void main(String[] args){
        One o = new One()
        Two t = new Two(o);
    }

}

    public class Two{

        public Two(One o){
            One o = o;
            o.doSomething();
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,我从方法调用o.doSomething()得到一个NullPointerException.我已经尝试了一段时间来解决它,但我很难过.如果有人能够快速告诉我修复它会非常感激.

Rei*_*ica 5

One o = o;
Run Code Online (Sandbox Code Playgroud)

我不知道这是做什么的,但它不会起作用.这应该是一个成员变量(this.o)?要做到这一点,将它放在类而不是函数中:

public class Two{
    private One o;

    public Two(One o){
        this.o = o;
        o.doSomething();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您不需要,可以完全删除它:

public class Two{
    public Two(One o){
        o.doSomething();
    }
}
Run Code Online (Sandbox Code Playgroud)