private final List<KeyListener> keyListeners= new CopyOnWriteArrayList<KeyListener>();
public void addKeyListener(KeyListener keyListener){
keyListeners.add(keyListener);
}
上記のコードでは、keyListeners が final であると宣言しており、スレッドセーフでもあります。最終的には、構築後にリスナーの状態を変更できないことを意味します。しかし、私は addKeyListener() メソッドで同じことをしていませんか? コンパイラが警告を表示しないのはなぜですか? ここで何が欠けていますか?