gpt4 book ai didi

带有自定义 DataPackage 的 Java NotSerializedException

转载 作者:行者123 更新时间:2023-11-30 06:12:08 24 4
gpt4 key购买 nike

我目前正在为 future 的项目开发一个简单的服务器-客户端结构。我决定最好使用自定义 header 信息(例如本地/公共(public) IP、时间戳等)创建自己的数据包。以下是我提出的类:

public class DataPackage {
private Object object;
private Date time;
private long timeMs;
private boolean responded;
private String publicIp;
private String internalIp;
private int hash;

public DataPackage(Object object) {
this.object = object;
this.responded = false;
this.time = Calendar.getInstance().getTime();
this.timeMs = System.currentTimeMillis();
this.publicIp = this.generatePublicIp();
this.internalIp = this.generateInternalIp();
this.hash = System.identityHashCode(this);
}

private String generatePublicIp() {
try {
URL whatismyip = new URL("http://checkip.amazonaws.com");
BufferedReader in = new BufferedReader(new InputStreamReader(whatismyip.openStream()));

return in.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

private String generateInternalIp() {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

}

(我删除了 getter 和 setter)

我决定使用一个对象,这样我就可以发送类中的任何内容。它编译得很好,但如果我尝试发送一个简单的字符串,打包在类中,我会得到一个 NotSerializedException。是否有任何属性或字段无法转换为流,或者我应该将类更改为通用类?我不是流和网络方面的专家,所以我感谢我能得到的每一点帮助和解释。

注意:我的母语不是英语,请原谅任何拼写/语法问题。

最佳答案

您应该实现 Serialized 接口(interface),以便通过网络传输该类。

将类(class)的第一行更改为:

import java.io.Serializable;
public class DataPackage implements Serializable{

关于带有自定义 DataPackage 的 Java NotSerializedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50005778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com