我收到此错误:
"non-static method isAlive() cannot be referenced from a static context"
此代码有什么问题..请。
我想检测线程是否还活着...
在代码方面的任何帮助将不胜感激..谢谢
最大值
class RecThread extends Thread {
public void run() {
recFile = new File("recorded_track.wav");
// Output file type
AudioFileFormat.Type fileType = null;
fileType = AudioFileFormat.Type.WAVE;
// if rcOn =1 thread is alive
int rcOn;
try {
// starts recording
targetDataLine.open(audioFormat);
targetDataLine.start();
AudioSystem.write(new AudioInputStream(targetDataLine),
fileType, recFile);
if (RecThread.isAlive() == true) {
rcOn =1;
}
else {
rcOn =0;
}
} catch (Exception e) {
showException(e);
}
// update actions
recAction.setEnabled(true);
stopRecAction.setEnabled(false);
}
}
最佳答案
if (RecThread.isAlive() == true) {
这条线是有问题的。 isAlive()不是静态方法,这意味着它只能作用于Thread的实例。您在静态上下文中使用它,方法是使用类型(RecThread)而不是对象来调用它。