【发布时间】:2014-04-24 07:26:41
【问题描述】:
我正在尝试在 java 中实现可序列化,但我得到了一个异常。
这是我的可序列化类:
public class Serialize implements java.io.Serializable {
private static final long serialVersionUID = 1L;
public double dis1;
public double dis2;
public double error1;
public double error2;
public double coorx;
public double coory;
public double coorz;
}
当我创建这个类的对象并尝试转换为字节时。
Serialize serial = new Serialize();
serial.dis1 = dis1;
serial.dis2 = dis2;
serial.error1 = error1;
serial.error2 = error2;
serial.coorx = coorx;
serial.coory = coory;
serial.coorz = coorz;
byte[] bytes = null;
int length = 0;
try {
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ObjectOutputStream os = new ObjectOutputStream(bs);
os.writeObject(serial); ///EXCEPCION
os.close();
bytes = bs.toByteArray();
length = bytes.length;
} catch (IOException e) {
e.printStackTrace();
}
我做错了什么?
Logcat:
04-24 09:15:29.734: W/System.err(4279): java.io.NotSerializableException: org.gradiant.sistole.locservice.Communication
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1364)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:979)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:368)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1074)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1404)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
04-24 09:15:29.734: W/System.err(4279): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
04-24 09:15:29.734: W/System.err(4279): at org.gradiant.sistole.locservice.Communication.datarequest(Communication.java:447)
04-24 09:15:29.734: W/System.err(4279): at org.gradiant.sistole.locservice.UWBmain.process(UWBmain.java:311)
04-24 09:15:29.734: W/System.err(4279): at org.gradiant.sistole.locservice.UWBmain$2.run(UWBmain.java:279)
04-24 09:15:29.734: W/System.err(4279): at java.lang.Thread.run(Thread.java:841)
谢谢
【问题讨论】:
-
你的对象叫做序列化?不是禁止吗?无论如何,问题似乎出在您的 org.gradiant.sistole.locservice.Communication 类
-
我更改了班级名称,但问题仍然存在
-
您的“序列化”类是否包含任何其他对象?我的意思是除了双字段。
-
只是猜测...¿这是偶然的内部类吗?如果是这样,请将其设为静态!
-
尝试修改你的serialVersionUID的值:private static final long serialVersionUID = 87418L; // 随机长 ...
标签: java android serialization