java 序列化怎么标记为不可序列化的字段?
我是的序列化方法是这样的:ObjectOutputStreamoos=newObjectOutputStream(stream);oos.writeObject(o);o...
我是的序列化方法是这样的:
ObjectOutputStream oos = new ObjectOutputStream(stream);
oos.writeObject(o);
oos.flush();
oos.close();
需要序列化的对象是o,但是这个o里面有些字段是无法序列化的,而且我也不需要序列化它们,我怎么样加一个标记可以让ObjectOutputStream不去序列化它们呢? 展开
ObjectOutputStream oos = new ObjectOutputStream(stream);
oos.writeObject(o);
oos.flush();
oos.close();
需要序列化的对象是o,但是这个o里面有些字段是无法序列化的,而且我也不需要序列化它们,我怎么样加一个标记可以让ObjectOutputStream不去序列化它们呢? 展开
4个回答
展开全部
java序列化中如果要标记为不可序列化的字段,可以使用关键字:tranisant修饰。
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想 用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。
transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想 用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。
transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
展开全部
通过在属性前加上transient关键字,可以指定java序列化是无须理会该属性值。如这里的o对象,可以将无需序列化的字段属性前加上transient即可。假设有个age属性,
则:private transient int age;
则:private transient int age;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在你不要的字段加上修饰符transient
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
声明的时候加上 transient 这个关键字就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询