我试过这样做:
ByteArrayOutputStream b = new ByteArrayOutputStream();
ObjectOutputStream o = new ObjectOutputStream(b);
o.writeObject(obj);
其中 obj 是我制作的一个简单类:
class Car {
int id;
String color;
//...
}
但是我得到java.io.NotSerializableException
是否可以序列化任何类型的java.lang.Object
into byte array
?是这样,怎么样?
更新:
将被“序列化”的类不实现Serializable
接口;我正在尝试做的这件事背后的想法是,我试图拥有一个数据库支持java.util.Map
,其中地图中的对象put
直接存储在数据库中,因此任何类型的Object
我还看到了一些序列化框架,在序列化任意对象时如何绕过这个“限制”,有一个类注册,如:
kryo.register(SomeClass.class, 0);
不确定这一点。
但我很确定我需要做的是:
- 反射读取对象的字段和方法