Java 如何使用对象';调用它的线程实例的方法?

Java 如何使用对象';调用它的线程实例的方法?,java,multithreading,Java,Multithreading,我目前正在为多人游戏编写服务器。服务器的主要类如下所示: public final Logger logger = LogManager.getLogger(Turtle.class.getName()); public boolean isStopped = true; public static Turtle serverInstance; public NetworkHandler networkHandler; protected InetAddress ip; protected i

我目前正在为多人游戏编写服务器。服务器的主要类如下所示:

public final Logger logger = LogManager.getLogger(Turtle.class.getName());
public boolean isStopped = true;
public static Turtle serverInstance;
public NetworkHandler networkHandler;

protected InetAddress ip;
protected int port;

public Turtle(InetAddress ip, int port){
    this.ip = ip;
    this.port = port;

}

public static void main(String[] args){
    serverInstance = new Thread(new Turtle(NetworkHandler.getipByName("0.0.0.0"), 19132));
    serverInstance.start();
}

public void run() {
    logger.info("Starting Turtle...");
    isStopped = false;
    logger.info("Initializing Networking.");
    networkHandler = new NetworkHandler(ip, port);
    networkHandler.start();
    logger.info("Done!");
}

public NetworkHandler getNetworkHandler(){
    return networkHandler;
}

public static Thread getServer(){
    return serverInstance;
}

public static String getMOTD(){
    return "MCCPP;MINECON;[0/20] Turtle Test Server";
}

public Logger getLogger(){
    return logger;
}

public void stop(){
    logger.info("Turtle is stopping.");
    networkHandler.stahp();
    System.exit(0);
}
这个类本身就是一个可运行的类。如您所见,我试图通过将静态serverInstance设置为线程中的服务器实例,然后调用start方法来启动服务器。但是,这不起作用,因为serverInstance需要Turtle对象(该类的名称)。我无法将其更改为线程,因为程序的其他部分需要通过该实例使用从Turtle到Thread的方法,而将serverInstance更改为Thread将不允许我访问该类的任何方法

所以,问题是,如何将serverInstance设置为该线程,并保留从serverInstance访问所有Turtle方法的权限

抱歉,这有点让人困惑。我的脑子里也有点乱七八糟,我可能很难把它说出来。

这个有用吗

public static Turtle globalTurtle;
public static Thread serverInstance;

public static void main(String[] args){
    globalTurtle = new Turtle(NetworkHandler.getipByName("0.0.0.0"), 19132);
    serverInstance = new Thread(globalTurtle);
    serverInstance.start();
}
(还有所有其他行…

是的,谢谢!)我在想,使用raw类可能不会产生与线程相同的结果……显然我错了。再次感谢!