Nếu một câu hỏi tương tự đã được đăng trên stackoverflow, xin vui lòng chỉ cần đăng liên kết.Tại sao cần thiết để đánh dấu một lớp là có thể tuần tự hóa?
Cần phải triển khai giao diện Serializable (không có phương pháp) cho các đối tượng được sắp xếp theo thứ tự? API Java nói - - Nếu nó không được triển khai thì nó sẽ ném java.io.NotSerializableException.
Đó là bởi vì các đoạn mã sau vào ObjectOutputStream.java
............................
writeObject0(Object obj, boolean unshared){
.............
} else if (cl.isArray()) {
writeArray(obj, desc, unshared);
} else if (obj instanceof Serializable) {
writeOrdinaryObject(obj, desc, unshared);
} else {
throw new NotSerializableException(cl.getName());
}
................
Nhưng câu hỏi của tôi là lý do tại sao cần thiết của nó để thực hiện Serializable và do đó thông báo hoặc báo cho Java/JVM rằng một lớp có thể được đăng. (Là nó chỉ để tránh ngoại lệ?).
Trong trường hợp này, Nếu chúng ta viết một chức năng tương tự ghi đối tượng vào luồng mà không kiểm tra xem lớp trong một instanceOf có thể tuần tự hóa, các đối tượng của lớp không thực hiện tuần tự tuần tự?
Mọi trợ giúp đều được đánh giá cao.
Ngắt của http://stackoverflow.com/questions/441196/why-java-needs-serializable-interface –
[Câu hỏi này] (http://stackoverflow.com/questions/441196/why-java-needs- serializable-interface) có một số câu trả lời hay cho điều này. – jwoolard