Je suis nouveau à JAVA et essayait d'échanger les objets entre le client et le serveur en utilisant readObject() mais il affichait incompatible types : object cannot be converted to ChatData
. Pourquoi l'erreur s'est-elle produite et comment résoudre ce problème? S'il vous plaît dites-moi comment cela fonctionne.types incompatibles: objet ne peut pas être converti en ChatData
` Socket socket = new Socket("127.0.0.1", 3000);
ObjectOutputStream clientWriter;
ObjectInputStream clientReader;
try {
clientWriter = new ObjectOutputStream(socket.getOutputStream());
clientReader = new ObjectInputStream(socket.getInputStream());
ChatData clientOutputData = new ChatData("Hello! This is a message from the client number ", socket.getInetAddress());
clientWriter.writeObject(clientOutputData);
ChatData clientInputData = clientReader.readObject(); //Here is the error and the ChatData is another class.
try {
// do processing
Thread.sleep(2000);
} catch (InterruptedException ex) {
Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (IOException ex) {
Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
if (clientReader != null) {
clientReader.close();
}
if (clientWriter != null) {
clientWriter.close();
}
socket.close();
} catch (IOException ex) {
System.err.println("Couldn't close the connection succesfully");
Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
}
}
Thread.sleep(15000);
}
}
est-ce que cela fait couler le travail 'ChatData'? 'ChatData clientInputData = (ChatData) clientReader.readObject();' –
Oui, cela a fonctionné. Mais pourquoi est-ce nécessaire de le jeter? – DawnEagle999
parce que java est un langage de programmation typé statique et fort, donc le casting implicite (ce que vous faisiez) est un gros non non pour le compilateur. –