我有一个不可序列化的java对象。它是一个外部库,我不能将它们标记为可序列化。这里有几个问题..
1)它们仍然可以写入mySQL BLOB列吗?
2)还有其他方法可以将它们保存在我的JVM之外吗?
任何帮助都会有用。
由于 -a
答案 0 :(得分:2)
1)你试过吗?
2)当然,例如在XML文件中。我个人使用XStream
答案 1 :(得分:2)
1)它们仍然可以写入mySQL BLOB列吗?
是的,但您需要实现序列化算法来生成字节。此外,您需要确保可以访问所有必需的内部状态。
2)还有其他方法可以将它们保存在我的JVM之外吗?
查看XStream
答案 2 :(得分:1)
好吧,它们不必是“Java默认二进制序列化方案”的可序列化,但它们必须是可序列化的以某种方式,根据定义:你必须有一些方法将数据提取到字节数组中,然后从该数组中重新构造它。
你是如何做到这一点取决于你 - 周围有很多的序列化框架/协议/等。
答案 3 :(得分:0)
Serializable本身没有做任何事情,它只是一种提示类可以可序列化的方法。有些工具需要存在接口,而有些则不需要。
我没有考虑将java对象存储为mySQL BLOB,但是如果可序列化的java对象可以,那么我看不出为什么它不可能。
2)还有其他方法可以将它们保存在我的JVM之外吗?
有许多方法可以在JVM之外保留对象。将其存储到磁盘,ftp,网络存储等,并且存在用于以各种格式(例如XML等)存储的工具。
答案 4 :(得分:0)
他们可以,但不能自动。您必须提出自己的代码来构造对象的二进制表示,将二进制数据保存到数据库,然后在从数据库中提取数据时重新构建对象。
是的,但同样不会是自动的。您必须提出自己的对象二进制表示,决定如何存储它,然后在想要阅读它时重新构建对象。