2014-11-01 32 views
0

我正在尝试构建一个简单的即时讯息程序。现在我正在为serevr类编码什么在服务器端运行。我目前正在使用的方法是whileChatting。 该方法应该在聊天窗口上显示字符串消息,直到用户点击END。 现在,为了读取在窗口的输入对象我使用这行代码:在java中可以使用readObject方法的替代方法是什么?

message=(String)input.readObject(); 

其显示出“方法未找到”错误。为什么如此?如果在java库中不存在这样的方法,那么可以使用什么呢?我要粘贴代码为whileChatting方法:PLZ问我,如果你需要看到代码全班]

 private void whileChatting(){ 
    String message="You are now connected"; 
    sendMessage(message); 
    ableToType(true); 
    do{ 
     try{ 
      message=(String)input.readObject(); 
      showMessage("\n"+message); 

     }catch(ClassNotFoundException classNotFoundException){ 
      showMessage("\n the input cean't be read"); 
     } 

    }while(!message.equals("CLIENT-END")); 

    } 
+2

什么是输入?它是一个ObjectInputStream吗?如果没有,那么你没有找到方法是有道理的。您的问题中缺少关键信息。 – 2014-11-01 23:22:44

+0

气垫船Full of Eels,我不太熟悉ObjectInputStream,是的,可能就是这样!我可以告诉输入的是它的任何字符串对象,即字符消息用户(或客户端)将输入的内容以及服务器端将读取的内容。你需要查看课程的完整代码吗? – Ryan 2014-11-01 23:31:33

+2

瑞恩 - 你还没有告诉我们 - 什么是'输入'?您只能使用该变量可用的方法,并且不能组成该变量不存在的方法。那就是你必须开始的地方。 – 2014-11-01 23:40:24

回答

0

幽州:

的输入的InputStream。我已经这样分配它:private InputStream input;

然后您可以检查API以查看InputStream有哪些方法可用,并且您会看到readObject()不存在。请注意,您应该习惯于这样做,因为Java API将为您提供许多您需要知道的信息,以便您可以使用核心Java中提供的类。同样,readObject()不是InputStream的方法,而是ObjectInputStream的一种方法。现在一种可能的解决方案是将你的InputStream包装到一个ObjectInputStream中,这样做可以让你使用readObject()方法,但是我会建议你不要这样做,甚至不用打扰readObject()或任何类似的方法。相反,为什么不用你的InputStream创建一个Scanner对象,并通过它的nextLine()方法直接从Scanner对象获得你的Strings。

相关问题