我知道我应该为一个特殊的错误提供足够的信息。但不可能重现它。我有一个高度多线程的程序。我有一个带有无限while循环的线程。程序的任何部分都不能中断这个线程。我Thread.currentThread().isInterrupted();
尽可能多地检查。但有时会发生线程停止运行并出现一个奇怪的异常堆栈跟踪,告诉它无法在某些 Lable 的 setText 方法中将某些类型转换为布尔值,它指向程序的以下行:
JOptionPane.showMessageDialog(null, "action finished, going to the next!");
我知道我应该换个方式思考!因为我没有标签来设置在这个线程中完成的文本。事实上,在整个程序中,我从不更改 GUI 的任何文本。我只是写到控制台。可能是什么问题?它可能是我的代码中的内存泄漏还是可能是 Java 的错误?