java.io.serializable中可以定义map吗

2024年12月01日 12:59
有2个网友回答
网友(1):

听我慢慢道来 


 类通过实现java.io.Serializable接口可以启用其序列化功能。未实现次接口的类无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。

  Java的"对象序列化"能让你将一个实现了Serializable接口的对象转换成byte流,这样日后要用这个对象时候,你就能把这些byte数据恢复出来,并据此重新构建那个对象了。



 在序列化时,有几点要注意的:

  1:当一个对象被序列化时,只保存对象的非静态成员变量(包括声明为private的变量),不能保存任何的成员方法和静态的成员变量。

  2:如果一个对象的成员变量是一个对象,那么这个对象的数据成员也会被序列化。

  3:如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个NotSerializableException。我们可以将这个引用标记为transient,那么对象仍然可以序列化。


那么回来题主的问题, java.io.serializable中可以定义map吗?

这个要视 map的实现类而定 


如果实现了是 java.util.HashMap  是可以的,因为他实现了 java.io.Serializable 接口


网友(2):

实现类中,可以使用任何的JAVA类。。。。。。。。。。。。