我创建了工作套接字,当我尝试发送文本或数字时,就可以了,但是当我尝试发送自定义类对象时,我收到了NullPointerException ...
这是一些代码:
public boolean SendLi(List<Entity> list)
{
try {
out.writeObject(list);
} catch (IOException e) {
e.printStackTrace();
System.err.println("Send: Error on OutputStream.write(byte[])");
}
return true;
}
public List<Entity> RecvLi()
{
List<Entity> data;
data = new ArrayList<Entity>();
try{
data = (List<Entity>) in.readObject();
} catch (IOException e) {
System.err.println("Send: Error on OutputStream.read(byte[]) - IOException");
return null;
} catch (ClassNotFoundException e) {
System.err.println("Send: Error on OutputStream.read(byte[]) - ClassNotFound");
e.printStackTrace();
}
return data;
}
实际上,该代码是我为List编写的,但是我想具有一些类似的功能来发送其他对象。
感谢您的任何答复!
最佳答案
您需要先对Custom类进行序列化,然后再通过套接字发送它。
out.writeObject(list);
应该被序列化,您的类应该实现java.io.Serializable接口(interface)
关于java - Java套接字-自定义对象发送,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8834881/