java - 你能让一个对象在运行时可序列化吗?

标签 java serialization runtime

正如标题所说,有没有办法检查一个对象是否可序列化,如果不是,则在运行时使其如此?

最佳答案

简短回答 - 否。

更长的答案 - 是的,使用字节码操作,例如使用 asm。但是你真的应该考虑是否需要这样做。序列化是个正经事(Effective Java有一整章序列化)

顺便说一句,二进制序列化有替代方法,不需要对象实现 Serializble(正如 Jacob 在评论中指出的那样):

  • XML - java.beans.XMLEncoder.encode(..)ObjectOutputStream 的 xml 版本
  • JSON - Jacskon、Gson 等框架让您只需一行就可以序列化一个对象。

关于java - 你能让一个对象在运行时可序列化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660567/

相关文章:

java - 通过输入 HashMap 值获取 HashMap key 无法按预期工作

java - 从jsp页面运行.exe文件的代码

c# - 使用 JSON.NET 将 JSON 数据(数组)反序列化为 C#

java - PSQL异常 : this ResultSet is closed

java - 将数据库连接从 GWT 应用程序传递到 Java 程序

java.lang.RuntimeException : Parcelable encountered IOException writing serializable object in Android passing ArrayList object 错误

java - 即使存在默认构造函数,也无法从对象值反序列化(没有基于委托(delegate)或属性的创建者)

Java 运行时.exec : doesn't change path

java - 在运行时加载内部类

runtime - 在运行时生成 BPEL 的框架?