📄 observable.java
字号:
/* * Java core library component. * * Copyright (c) 1999 * Archie L. Cobbs. All rights reserved. * Copyright (c) 1999 * Transvirtual Technologies, Inc. All rights reserved. * * See the file "license.terms" for information on usage and redistribution * of this file. * * Author: Archie L. Cobbs <archie@whistle.com> */package java.util;public class Observable { private final ArrayList observers; private boolean changed; public Observable() { observers = new ArrayList(); changed = false; } public synchronized void addObserver(Observer o) { observers.add(o); } public synchronized void deleteObserver(Observer o) { int index = observers.indexOf(o); if (index != -1) { observers.remove(index); } } public void notifyObservers() { notifyObservers(null); } public synchronized void notifyObservers(Object arg) { if (changed) { // Need to clone list to avoid any concurrent // modification exceptions. for (Iterator i = ((ArrayList)(observers.clone())).listIterator(); i.hasNext(); ) { ((Observer)i.next()).update(this, arg); } clearChanged(); } } public synchronized void deleteObservers() { observers.clear(); } protected void setChanged() { changed = true; } protected void clearChanged() { changed = false; } public boolean hasChanged() { return changed; } public synchronized int countObservers() { return observers.size(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -