private final List<KeyListener> keyListeners= new CopyOnWriteArrayList<KeyListener>();
public void addKeyListener(KeyListener keyListener){
keyListeners.add(keyListener);
}
在上面的代码中,我将 keyListeners 声明为 final 并且它是线程安全的。我假设 final 我的意思是侦听器的状态在构造后不能改变。但是我在 addKeyListener() 方法中没有做同样的事情吗?为什么编译器不给我警告?我在这里想念什么?