读书人

求老手帮看看这段代码的警告是咋回事

发布时间: 2012-12-24 10:43:13 作者: rapoo

求老手帮看看这段代码的警告是怎么回事
代码中红字标出处为警告.
警告内容: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就不行了。
[其他解释]
谢谢两位了!

读书人网 >J2EE开发

热点推荐