开发者

isAlive problem..Help to understand how it works

开发者 https://www.devze.com 2023-02-03 15:01 出处:网络
I get this error: \"non-static method isAlive() cannot be referenced from a static context\" what\'s wrong with this code..please.

I get this error:

"non-static method isAlive() cannot be referenced from a static context"

what's wrong with this code..please.

I'd like to detect if the thread is alive... Any help in terms of code will be highly appreciated..thanks max

class RecThread extends Thread {

    public void run() {

        recFile = new File("rec开发者_JAVA技巧orded_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) {

this line is problematic. isAlive() is not a static method, which means it can only act on an instance of a Thread. you are using it in a static context by calling it with a type (RecThread) instead of an object.


You are trying to access in a static way to a method which is not static. I mean, isAlive() method returns if the thread which is running the current instance is not dead.

That's why isAlive() is not static, it is bounded to an instance (to the state of the thread) not to the class itself.


No meaning in checking isAlive() from within run()..If it is executing code in run() it means it is live If some other thread has an object of RecThread, then that thread can use recThread.isAlive() to see if its still running

0

精彩评论

暂无评论...
验证码 换一张
取 消