当观察到某些东西时,我们可以调用另一种方法吗

时间:2018-12-20 10:25:22

标签: java observable

我要遵守队列限制。当超出限制时,我想通过调用方法来创建另一个队列

我试图在重写的观察者更新方法中调用newqueue(创建新队列)方法。

public void update(Observable o,Object arg){
    Bank bank = new Bank();
    if(arg == "went_over"){
        System.out.println("went over the limit");
        bank.newqueue();    //didn't work
}

该在哪里调用该newqueue方法?

2 个答案:

答案 0 :(得分:0)

您能否提供更多背景信息?另外一些代码片段可能会给我们提供密钥。

无论如何,您正在将argString进行比较。如果收到的对象是字符串,则很酷。如果不是,它可能无法按预期工作。我想说if(arg.getName() == "went_over")是这样,假设您传递的所有对象都具有这种方法?

答案 1 :(得分:0)

从您发布的github链接(具有不同的代码,但是尽管如此)开始,问题在于在update方法中,您调用了addtoque2(我认为这就是您所指的{ {1}},在此)上新创建的newqueue实例上。因此,您使用

创建的实例
Bank
Bank bank = new Bank(); 方法中

作为局部变量是唯一调用此方法的方法。我假定,您实际上想对在update()中创建的实例执行操作。如果是这样,则您必须以某种方式在main中对其进行引用。有几种方法可以做到这一点,包括:

  • update中将Bank的一个字段(在本例中为您的FrontOfficer)中,并通过该字段进行访问。
  • 将队列的创建完全委托给Observable
  • 如果只有一个银行,则可以使用单例模式
相关问题