构造函数结束后调用方法

mik*_*hts 12 java

我需要在构造函数结束后调用一个方法,我不知道该怎么做.我有这门课:

Class A {
    public A() {
        //...
    }

    public void init() {
        //Call after the constructor
    }
}
Run Code Online (Sandbox Code Playgroud)

aio*_*obe 13

您必须在客户端执行此操作,如下所示:

A a = new A();
a.init();
Run Code Online (Sandbox Code Playgroud)

或者您必须在构造函数的末尾执行此操作:

class A {
    public A() {
        // ...
        init();
    }

    public final void init() {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,不推荐使用第二种方法,除非您将方法设为私有或最终方法.


另一种选择可能是使用工厂方法:

class A {
    private A() {  // private to make sure one has to go through factory method
        // ...
    }
    public final void init() {
        // ...
    }
    public static A create() {
        A a = new A();
        a.init();
        return a;
    }
}
Run Code Online (Sandbox Code Playgroud)

相关问题:


归档时间:

查看次数:

10154 次

最近记录:

7 年,4 月 前