确定方法是第一次还是第二次被调用?

Bio*_*441 3 java

我想实现一个方法,它在第一次调用时具有不同的行为,然后在第二次调用它时.

怎么做?

das*_*ght 6

Java中的实例方法可以访问类的状态.添加一个变量以指示之前是否已调用这些方法,并使用它来决定在方法内部采用的两个路径:

class FirstTimeCaller {
    private boolean isFirstTime = true;
    void methodWithState() {
        if (isFirstTime) {
            ... // Do first-time thing
            isFirstTime = false;
        } else {
            ... // Do the other thing
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这适用于同一对象的方法:第一次调用将在您第一次调用类的methodWithState每个新对象时执行FirstTimeCaller.

如果您希望为静态方法实现相同的行为,或者您希望在任何实例上进行第一次调用以执行其他操作,并且所有后续调用都要执行其他操作,请创建isFirstTime字段static.