0

Java でクライアント サーバー チャット アプリケーションを開発しています。ただし、Java ファイルの 1 つをコンパイルしているときにエラーが発生します。

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

クラスにメソッドがありませChatServerremove(int)。そこにあることを確認してください。

于 2012-05-26T08:19:18.053 に答える
0

次のいずれかが当てはまります。

  1. あなたのクラス ChatServer には remove メソッドと handle メソッドがありません
  2. あなたのクラス ChatServer には remove と handle というメソッドがありますが、それらのメソッドを呼び出しているのとまったく同じパラメーター タイプはありません。
  3. そのクラスを変更しましたが、コンパイルするのを忘れました。ここでは、ChatServerThread クラスのみをコンパイルしています。
于 2012-05-26T08:29:17.363 に答える