Java 可序列化类中的不可序列化字段(临时关键字)
我有一个扩展Servlet的可序列化类Java 可序列化类中的不可序列化字段(临时关键字),java,oop,serialization,transient,Java,Oop,Serialization,Transient,我有一个扩展Servlet的可序列化类 public class FileDownload extends HttpServlet{ @SuppressWarnings("compatibility:6754389671327954013") private static final long serialVersionUID = 1L; private ResultSet rset; ...... } 我的问题是: rset对象是否在编译时或运行时自动转换
public class FileDownload extends HttpServlet{
@SuppressWarnings("compatibility:6754389671327954013")
private static final long serialVersionUID = 1L;
private ResultSet rset;
......
}
我的问题是:
rset
对象是否在编译时或运行时自动转换为transient
?或者我必须明确地将其标记为瞬态
?(这是我的IDE JDeveloper发出的警告)。你必须自己调用transient
。但是你不能序列化
对象,除非它实现可序列化
接口。ResultSet就是这样的对象。否,序列化不会忽略该字段-如果尝试序列化FileDownload
的实例,将得到java.io.NotSerializableException
。将其标记为瞬态。顺便问一下,ResultSet
作为Servlet
中的字段做什么?这不是线程安全的ResultSet
在任何上下文中都只能是局部变量。OTOH,为什么要将ResultSet存储在servlet中?教育类问题:)它可能是任何其他类型的对象第一句话毫无意义。第二个不正确:ResultSet
根本不是一个对象,它是一个接口。