Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用.remove方法时出错_Java - Fatal编程技术网

Java 使用.remove方法时出错

Java 使用.remove方法时出错,java,Java,我正在用java开发一个客户机-服务器聊天应用程序。但是,在编译其中一个java文件时,我遇到了一个错误: Java文件: import java.net.*; import java.io.*; public class ChatServerThread extends Thread { private ChatServer server = null; private Socket socket = n

我正在用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

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

以下任一情况可能是正确的:

  • 您的类ChatServer没有remove和handle方法
  • 您的类ChatServer具有名为remove和handle的方法,但它们的参数类型与您调用它们的参数类型不完全相同
  • 您更改了该类,但忘记编译它;您只在这里编译ChatServerThread类

  • 大概您的
    ChatServer
    类没有带有单个
    int
    参数的
    remove
    方法。我们很难说别的,因为您没有向我们展示这个类……它说,
    ChatServer
    没有
    remove(int)
    方法,也没有
    handle(int,String)
    方法。