求老手帮看看这段代码的警告是怎么回事
代码中红字标出处为警告.
警告内容:The serializable class HelloServlet does not declare a static final serialVersionUID field of type long
import
java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.GenericServlet;
import
javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class HelloServlet extends GenericServlet {
/**
* Servlet启动时调用的函数
*/
public void init() {
System.out.println("init() was called.");
}
/**
* 处理客户端的请求
* @param req 客户端请求
* @param res 客户端响应
*/
@Override
public void service(ServletRequest req, ServletResponse res)
throws
ServletException,
IOException {
System.out.println("service() was called.");
res.setContentType("text/html; charset=UTF-8");
// 获取输出流对象
PrintWriter out = res.getWriter();
// 发送HTML内容
out.println("<html>");
out.println("<head>");
out.println("<title>Hello, Servlet!</title>");
out.println("</head>");
out.println("<body>");
out.println("Hello, Servlet!");
out.println("</body>");
out.println("</html>");
}
/**
* Servlet结束时调用的函数
*/
public void destroy() {
System.out.println("destroy() was called.");
}
}
------最佳解决方案--------------------没有定义版本号。对程序没有影响。
private static final long serialVersionUID = 1L;你可以随便定义的。
你点那个警告的感叹号,可以自动添加的。
------其他解决方案--------------------serialVersionUID相当于java类的身份证。主要用于版本控制。serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。
其实不写也是可以的,当然为了规范还是写上吧。
警告不影响运行的,Exception就不行了。
------其他解决方案--------------------谢谢两位了!