这行代码产生了什么?
What is this line of code producing?
我一直在研究 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);
}
我想知道循环的第一条语句是如何工作的。我们在这里创建对特定观察者的引用吗?
第一行只是从列表中获取观察者。它创建对现有对象的新引用
I want to know how is the first statement of loop is working. Are
we creating references to a particular observer here?
此语句只是在指定的 index
获取 ArrayList
中的元素,并在将引用指向检索到的对象之前确保它是 Observer
类型。
Observer observer= (Observer) observers.get(i);
如果转换成功,则对检索到的 object
的引用将用于更新特定 object
的数据。
observer.update(temperature,humidity,pressure);
是的,您正在获取对 observers.get(i)
returns 对象的引用。您正在将此对象转换为 (Observer)
,然后您可以使用局部变量 observer
.
对其进行操作
我一直在研究 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);
}
我想知道循环的第一条语句是如何工作的。我们在这里创建对特定观察者的引用吗?
第一行只是从列表中获取观察者。它创建对现有对象的新引用
I want to know how is the first statement of loop is working. Are we creating references to a particular observer here?
此语句只是在指定的 index
获取 ArrayList
中的元素,并在将引用指向检索到的对象之前确保它是 Observer
类型。
Observer observer= (Observer) observers.get(i);
如果转换成功,则对检索到的 object
的引用将用于更新特定 object
的数据。
observer.update(temperature,humidity,pressure);
是的,您正在获取对 observers.get(i)
returns 对象的引用。您正在将此对象转换为 (Observer)
,然后您可以使用局部变量 observer
.