我正在尝试构建一个简单的即时消息程序。现在我正在为serevr类编写将在服务器端运行的内容。我目前正在处理的方法是whileChatting
。
此方法应在聊天窗口中显示字符串消息,直到用户点击 END 。
现在,为了在窗口中读取输入对象,我正在使用这行代码:
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"));
}
答案 0 :(得分:0)
你说:
输入是InputStream。我已经像这样分配了它:private InputStream input;
然后,您可以检查API以查看InputStream可用的方法,并且您将看到readObject()
不存在。请注意,您应该习惯于这样做,因为Java API将为您提供许多您需要知道的内容,以允许您使用核心Java中可用的类。同样,readObject()
不是InputStream的方法,而是ObjectInputStream的方法。现在一个可能的解决方案是将您的InputStream包装到ObjectInputStream中,这样做,这将允许您使用readObject()
方法,但我建议你不要这样做,你不这样做甚至打扰readObject()
或任何类似的方法。相反,为什么不使用InputStream创建一个Scanner对象,并通过其nextLine()
方法直接从Scanner对象获取字符串。