Java线程 - 接口问题

Gia*_*nis 0 java multithreading

我试图在多线程应用程序上应用状态模式.问题是编译器不喜欢我的类扩展Thread的事实.这是代码:

public class ConnectionHandler  extends Thread 
     private State lockedState;
     public ConnectionHandler(Socket socket){
     ...
     lockedState = new LockedState(this);
     }
     public State getState(){}
    public void setState(State state){}

{

public interface State  {
    public void PASSWD(String pass);
    public void ACCESS(String file);
    public void getDIR();
    public void QUIT();
}

public class LockedState implements State  {
    ConnectionHandler connectionHandler;
    public LockedState(ConnectionHandler handler){

        connectionHandler=handler;
    }
    public void PASSWD(String pass){
    public void ACCESS(String file){}
    public void getDIR(){}
    public void QUIT(){}
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是ConnectionHandler的构造函数:找不到兼容的类型java.lang.Thread.State:Networks2.LockedState.当我从Connectionhandler中删除extends Thread时,它不会给出任何错误,但那不是一个选项.所以问题是:我该怎么做才能让编译器不抱怨?谢谢

duf*_*ymo 6

我认为扩展java.lang.Thread是一个非常糟糕的主意.我怀疑你是否会提供值得延期的行为.

我打赌你真的想要实施java.lang.Runnable并让它执行java.lang.Thread.