次のコードは、呼び出されるたびにConcurrentModificationExceptionをスローします。2番目のコードは例外をスローしませんが、それは私が必要とする正しいロジックではありません。オブジェクトがのインスタンスである場合、メソッドがEditorFrame
何であるかであるカスタム廃棄戦略を呼び出す必要があります。close()
ただし、それが単なる基本フレームである場合は、それを呼び出したいと思いますdispose()
。
私はこのサイトを見て、いくつかの指示に従いましたが、私が見つけたものはどれもうまくいきませんでした。
例外をスローするコード:
synchronized (frameList) {
for (Iterator<JFrame> it = frameList.iterator(); it.hasNext();) {
JFrame frame = it.next();
if (frame instanceof EditorFrame) ((EditorFrame) frame).close();
else frame.dispose();
it.remove();
}
}
このコードは機能しますが、私が望むものではありません。
synchronized (frameList) {
for (Iterator<JFrame> it = frameList.iterator(); it.hasNext();) {
JFrame frame = it.next();
frame.dispose();
it.remove();
}
}
助けてくれてありがとう!