我有一个java类层次结构如下。
public class Results{
private String _query;
private CachedRowSetImpl _resultSet;
//... getter setters
}
我序列化List<Results> resultList
,认为此列表包含100个项目,每个_resultSet包含超过1000条记录。我有2个问题,
_resultSet
意味着只是查询就足够了吗?如果我的理解是错误的,请纠正我。
答案 0 :(得分:1)
如果您实施Externalizable
,您的readExternal
看起来会像:
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
_query=(String) in.readObject();
if(//yourCondition){
_resultSet=(CachedRowSetImpl) in.readObject();
}
}
答案 1 :(得分:0)
您应该实现Serializable。 修饰符&#34; transient&#34;可用于在序列化期间忽略字段。 我不知道CachedRowSetImpl中包含什么,但是当你忽略它时,只有100个String对象不会导致堆问题。
public class Results implements Serializable{
private String _query;
private transient CachedRowSetImpl _resultSet;
//... getter setters
}