这行代码是什么产生的?

时间:2017-03-12 12:21:00

标签: java observer-pattern

我一直在研究 head_first_design_Patterns 一书中的观察者模式。情景是这样的"有一个名为 observers 的ArrayList,它有所有实现 Observer 接口的观察者。 在书中,他们使用循环来更新所有观察者。循环是:

 for(int i=0; observers.size();i++)
 {
     Observer observer= (Observer) observers.get(i);
     observer.update(temperature,humidity,pressure);
 } 

我想知道循环的第一个语句是如何工作的。我们在这里创建对特定观察者的引用吗?

3 个答案:

答案 0 :(得分:2)

  

我想知道循环的第一个语句是如何工作的。是   我们在这里创建对特定观察者的引用?

此语句只是在指定ArrayList的{​​{1}}内获取元素,并在将引用指向检索到的对象之前确保其为index类型。

Observer

如果演员表成功,那么对检索到的Observer observer= (Observer) observers.get(i); 的引用将用于更新该特定object的数据。

object

答案 1 :(得分:1)

是的,您正在获取observers.get(i)返回的对象的引用。您将此对象强制转换为(Observer),然后您可以使用局部变量observer对其进行操作。

答案 2 :(得分:0)

第一行只是从列表中获取观察者。它创建了对现有对象的新引用