2012-01-12 48 views
6

Có lý do khả thi nào khiến trường serialVersionUID không có tên là SERIAL_VERSION_UID không?quy ước đặt tên serialVersionUID

Theo các tài liệu cho java.io.Serializable:

Một lớp serializable có thể tuyên bố serialVersionUID riêng của mình một cách rõ ràng bằng cách tuyên bố một lĩnh vực có tên là "serialVersionUID" mà phải tĩnh, thức, và loại dài:

ANY-ACCESS-MODIFIER tĩnh cuối cùng serialVersionUID = 42L;

Trong khi đề cập Java Naming Conventions tất cả static final (hằng số) lĩnh vực nên được capitilized có mảnh vỡ của nó tách ra với dấu gạch dưới.

+1

Đó là cách API tuần tự được viết;) – fge

Trả lời

4

Có lẽ vì serialVersionUID đã được xác định trong API tuần tự hóa Java trước khi các quy ước như vậy tồn tại.

Tôi tìm thấy một tài liệu được công bố bởi Sun vào năm 1997 gọi là Java Code Conventions mà nói tại Mục 9 trên trang 16 "Tên của các biến khai báo hằng số lớp và của ANSI hằng nên alluppercase với các từ cách nhau bởi dấu gạch dưới (‘’). "_

Vì vậy, tôi đoán là Sun không thực thi các tiêu chuẩn riêng của họ trên mã của riêng họ.

+0

Đừng nghĩ vậy, serialVersionUID đã được giới thiệu trong Java 1.5 –

+1

Tôi đã sửa chữa và đã chỉnh sửa nhận xét của mình. – Dev