我遇到一個小問題。我試圖在另一個類中使用一個方法來發送一個對象給我的服務器。我正在使用Java與套接字。當我嘗試使用Java將對象寫入服務器時發生NullPointerException
方法:
public void sendMessageToServer(String message) {
if (message != null) {
try {
serverComManager.outputStream.writeObject(message);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
類試圖使用方法:
sendMessage.sendMessageToServer("Hello");
該錯誤是在該行拋出:
serverComManager.outputStream.writeObject(message);
預先感謝您! 〜Rane
編輯:根據要求,我添加了'serverComManager'聲明以及該類的代碼。我還包括完整的錯誤。我希望這能幫助你理解我的問題。
聲明:
ServerCommunicationManager serverComManager = new ServerCommunicationManager();
代碼ServerCommunicationManager:
boolean connected;
//Setup
Socket clientSocket;
ObjectOutputStream outputStream;
ObjectInputStream inputStream;
public boolean connectToHost() throws UnknownHostException, IOException{
clientSocket = new Socket("localhost", 2444);
setupStreams(clientSocket);
if(clientSocket.isConnected()){
connected = true;
}else{
connected = false;
}
return connected;
}
private void setupStreams(Socket s) throws IOException{
outputStream = new ObjectOutputStream(s.getOutputStream());
inputStream = new ObjectInputStream(s.getInputStream());
}
錯誤:
Exception java.lang.NullPointerException
at SendToServer.sendMessageToServer(SendToServer.java:16)
at DissconnectClient.dissconnectFromServer(DissconnectClient.java:15)
錯誤行:
DissconnectClient 15: sendMessage.sendMessageToServer(abortConnectionKeyword);
SendToServer 16: serverComManager.outputStream.writeObject(message);
注意:DisconnectClient是我正在寫的類之一。下面是類代碼:
public class DissconnectClient {
//Variables
private final String keyword = "DISSCONNECT";
//Setup
SendToServer sendMessage = new SendToServer();
public void dissconnectFromServer(){
sendMessage.sendMessageToServer(keyword);
}
}
請問您是否可以發佈該異常或堆棧跟蹤的更大部分。因爲可以有很多方法來給這個異常,你的連接可能不會打開,或者serverComManager是空的,或者其他的。 – Cold 2014-09-29 11:27:28
你在哪裏分配serverComManager變量? – 2014-09-29 11:27:57