如何在调用其他方法的基础 class 上创建 java 方法?

How to create a java method on a base class that calls other methods?

我正在尝试使用需要在执行实际逻辑之前和之后调用私有方法的方法来构建基础 class。

public abstract class Base {

  public Base() {}

  private void before() {
    // doSomething
  }

  private void after() {
    // doSomething
  }

  public void actual(Object object) {
    before();
    // doSomething
    after();
  }

}

public class SomeClass extends Base {

  public SomeClass() {}

  public void actual(Object object) {
    // actual code that needs to be executed between before and after methods.
  }

}

我该怎么做?

创建另一个可以覆盖和实现的方法,而不是直接覆盖 actual

例如

public void actual(Object object) {
    before();
    doActual(object);
    after();
}

protected abstract void doActual(Object object);

如果您想确保没有人错误地覆盖它,您可以制作 actual() 方法 final

您可以将方法抽象为例如

protected abstract void actual(Object object);

并创建另一个 public 方法,该方法将被调用

public void init(Object object){
  before();
  actual(object);
  after();
}