正如标题所说,有没有办法检查一个对象是否可序列化,如果不是,则在运行时使其如此?
最佳答案
简短回答 - 否。
更长的答案 - 是的,使用字节码操作,例如使用 asm。但是你真的应该考虑是否需要这样做。序列化是个正经事(Effective Java有一整章序列化)
顺便说一句,二进制序列化有替代方法,不需要对象实现 Serializble
(正如 Jacob 在评论中指出的那样):
- XML -
java.beans.XMLEncoder.encode(..)
是ObjectOutputStream
的 xml 版本 - JSON - Jacskon、Gson 等框架让您只需一行就可以序列化一个对象。
关于java - 你能让一个对象在运行时可序列化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660567/