2009-10-08 33 views
19

Tại sao Swing JComponent thực hiện giao diện Serializable? Cách tôi đã thực hiện quan điểm của tôi, họ là không quốc tịch, tất cả các dữ liệu trạng thái được lưu trữ trong một mô hình trình bày. Vì vậy, tôi không cần phải sắp xếp hàng loạt lượt xem của mình. Tôi đã sử dụng chú thích @SuppressWarnings("serial") để xóa cảnh báo. Có cách nào tốt hơn để xóa chúng?Các thành phần Swing và tuần tự hóa

+4

* Cách * quá nhiều phần của API Java thực thi Serializable. Cá nhân, trừ khi tôi đã thực sự viết mã sử dụng serialization, tôi chỉ cần tắt cảnh báo serialization trong xây dựng/IDE của tôi. –

Trả lời

15

Trong phần đầu các nhà xây dựng GUI sẽ lưu giao diện người dùng ở định dạng được tuần tự hóa. Thẻ applet thậm chí có thuộc tính để tải từ biểu mẫu được tuần tự hóa (Tôi không biết bất kỳ ai khác đã sử dụng thẻ đó và tôi chỉ sử dụng nó là độc hại). Thật không may bằng cách sử dụng cơ chế tuần tự hóa cho GUI không thực sự hiệu quả. Swing chỉ đảm bảo khả năng tương thích trong cùng một bản phát hành chính (và tôi đoán thậm chí có vài bài kiểm tra).

3

Tại sao lớp Swing JComponent triển khai giao diện Serializable?

Mặc dù điều này cho phép bạn sắp xếp từng lớp và gửi chúng đến và từ máy khách và máy chủ, nhưng điều này dường như không phải là kịch bản trực quan. Có một cơ hội tốt hơn, vẫn còn mỏng, mà ai đó có thể muốn serialize các thành phần vào một tập tin. Điều này sẽ cho phép loại serialization đó.

Có cách nào tốt hơn để xóa [cảnh báo] không?

Bạn có thể khởi tạo serialVersionUID, nhưng nếu bạn làm như vậy, bạn sẽ cần phải duy trì nó khi bạn thay đổi lớp học. Điều này có vẻ như quá mức cần thiết. Một tùy chọn khác, như Laurence Gonsalves chỉ ra trong bình luận của mình, là để ngăn chặn các cảnh báo hoàn toàn trong trường Preferences-> Java-> Compiler-> Errors/Warnings-> Potential Programming Problems.

Các vấn đề liên quan