0

我正在用 java 开发客户端服务器聊天应用程序。但是,在编译其中一个 java 文件时出现错误:

Java 文件:

    import java.net.*;
    import java.io.*;

    public class ChatServerThread extends Thread
   { 
   private ChatServer       server    = null;
   private Socket           socket    = null;
   private int              ID        = -1;
   private DataInputStream  streamIn  =  null;
   private DataOutputStream streamOut = null;

   public ChatServerThread(ChatServer _server, Socket _socket)
   {  super();
      server = _server;
      socket = _socket;
      ID     = socket.getPort();
   }
   public void send(String msg)
   {   try
       {  streamOut.writeUTF(msg);
          streamOut.flush();
       }
       catch(IOException ioe)
       {  System.out.println(ID + " ERROR sending: " + ioe.getMessage());
          server.remove(ID);
          stop();
       }
   }
   public int getID()
   {  return ID;
   }
   public void run()
   {  System.out.println("Server Thread " + ID + " running.");
      while (true)
      {  try
         {  server.handle(ID, streamIn.readUTF());
         }
         catch(IOException ioe)
         {  System.out.println(ID + " ERROR reading: " + ioe.getMessage());
            server.remove(ID);
            stop();
         }
      }
   }
   public void open() throws IOException
   {  streamIn = new DataInputStream(new 
                        BufferedInputStream(socket.getInputStream()));
      streamOut = new DataOutputStream(new
                        BufferedOutputStream(socket.getOutputStream()));
   }
   public void close() throws IOException
   {  if (socket != null)    socket.close();
      if (streamIn != null)  streamIn.close();
      if (streamOut != null) streamOut.close();
   }
   }

编译时出错:

C:\Assignment_2010HP93506>javac ChatServerThread.java
ChatServerThread.java:25: cannot find symbol
symbol  : method remove(int)
location: class ChatServer
          server.remove(ID);
                ^
ChatServerThread.java:36: cannot find symbol
symbol  : method handle(int,java.lang.String)
location: class ChatServer
         {  server.handle(ID, streamIn.readUTF());
                  ^
ChatServerThread.java:40: cannot find symbol
symbol  : method remove(int)
location: class ChatServer
            server.remove(ID);
                  ^
Note: ChatServerThread.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 errors
4

2 回答 2

2

你的ChatServer类没有remove(int)方法。确保它在那里。

于 2012-05-26T08:19:18.053 回答
0

以下任一情况可能为真:

  1. 您的 ChatServer 类没有 remove 和 handle 方法
  2. 您的 ChatServer 类具有名为 remove 和 handle 的方法,但它们的参数类型与您调用它们时使用的参数类型不同。
  3. 您更改了该类但忘记编译它;你只是在这里编译 ChatServerThread 类。
于 2012-05-26T08:29:17.363 回答