public class VisualComponent{
private final List<KeyListener> keyListeners = new
CopyOnWriteArrayList<KeyListener>();
private final List<MouseListener> mouseListeners = new CopyOnWriteArrayList<MouseListener>();
public void addKeyListener(KeyListener listener){
keyListeners.add(listener);
}
public void addMouseListner(MouseListener listener){
mouseListeners.add(listener);
}
public void removeKeyListener(KeyListener listener){
keyListeners.remove(listener);
}
public void removeMouseListener(){
mouseListeners.remove(listener);
}
}
//委托失效
public class NumberRange{
private final AtomicInteger lower = new AtomicInteger(0);
private final AtomicInteger upper = new AtomicInteger(0);
public void setLower(int i){
if(i > upper.get()){
throw new IllegalArgumentException("can not set lower to "+ i + "> upper");
lower.set(i);
}
}
public void setUpper(int i){
if(i < lower.get()){
throw new IllegalArgumentException("can not set upper to "+ i + " < lower");
}
upper.set(i);
}
public boolean isInRange(int i){
return (i >= lower.get() && i <= upper.get());
}
}
线程安全性委托多变量以及委托失效java
最新推荐文章于 2023-06-03 14:37:37 发布