从其中的另一个对象调用对象的方法

时间:2016-10-29 12:55:51

标签: java object

我是java的新手,我想创建一个多线程应用程序,我将要描述:

  • 作业和jobRunner有两个主要对象。
  • jobRunner将在开头创建,它将获取描述作业的字符串列表,然后它将创建一个作业对象列表。
  • 每个作业对象都有一个在单独的线程中运行一系列操作的方法。使用它,jobRunner将在单独的线程上运行一堆作业
  • jobRunner还有一个方法来确定和报告作业状态,因此每个完成的作业都需要在其父对象中回调该方法

我的问题是最后一步。一个对象在另一个对象中如何调用它的前一个对象的方法?或者是否可以将jobRunner对象的地址传递给作业对象,以便它们可以通过该地址调用对象?谢谢你启发我:))

1 个答案:

答案 0 :(得分:2)

两个选项。 1)使用回调(清洁方法) 2)将参考JobRunner作为参数传递给Job(快速方法)

回调示例 声明接口并定义要在作业生命周期中的各个点调用的方法,例如void finished()

JobRunner可以实现该接口,并将其传递给Job。作业完成后,它可以调用回调方法。

简单回调示例

public interface JobUpdate {
  void jobCompleted();
}

public JobRunner implements JobUpdate {
   @override
   public void jobCompleted() {
     // Our implemented callback method, called from Job
   }
}

public Job() {
  private JobUpdate update;

  public Job(JobUpdate update) {
    this.update = update;
  }

  public void runJob() {
    // at correct point, invoke the appropriate callback method
    jobUpdate.jobCompleted();
  }
}