2013-01-11 31 views
13

thể trùng lặp:
What is a serialVersionUID and why should I use it?
what is meant by that in a servlet (private static final long serialVersionUID = 1L)?static final serialVersionUID dài = 1L

Tôi có 1 câu hỏi đơn giản về chương trình hướng dẫn này do giáo sư của chúng tôi.

Tôi đã thấy serialVersionUID nhiều lần nhưng tôi không làm điều đó.

package module; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Scanner; 

import javax.servlet.ServletException; 
import javax.servlet.ServletOutputStream; 
import javax.servlet.ServletResponse; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
/** 
* @author JA 
* 
*/ 
public class Servlet_1 extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet{ 

    static final long serialVersionUID = 1L; 

    public void doGet (HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 

     response.setContentType("txt/html"); 

     ServletOutputStream out = response.getOutputStream(); 

     out.println("<html>"); 
     out.println("<head><title>Hello Panget</title></head>"); 
     out.println("<body>"); 
     out.println("<h1>Hello Panget</h1>"); 
     out.println("</body></html>"); 
    } 

    protected void doPost (HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
      // Write your program here, Panget. 
    } 
} 

việc sử dụng

static final long serialVersionUID = 1L;

trong chương trình là gì?

Trả lời

23

SerialVersionUID là một định danh phiên bản phổ dụng cho một lớp Serializable. Deserialization sử dụng số này để đảm bảo rằng một lớp được nạp tương ứng chính xác với một đối tượng được tuần tự hóa. Nếu không tìm thấy kết quả phù hợp, thì một InvalidClassException sẽ bị ném.