2014-07-04 13 views
36

Khi tôi sử dụng Eclipse, nó có tính năng tốt để tạo UID phiên bản nối tiếp.Cách tạo UID phiên bản nối tiếp trong Intellij

Nhưng phải làm gì trong IntelliJ?

Cách chọn hoặc tạo UID phiên bản nối tiếp giống nhau trong IntelliJ?

Và phải làm gì khi bạn sửa đổi lớp học cũ?

Nếu bạn chưa xác định id, nó được tạo ra trong thời gian chạy ...

+0

Mục đích của UID là gì? Về phía tôi, tôi thấy nó vô dụng – JFB

+1

Bản sao của http://stackoverflow.com/questions/12912287/intellij-idea-generating-serialversionuid –

+0

@JFIB Hằng số lớp 'serialVersionUID' được tạo bởi trình biên dịch khi không được chỉ định. Xác định có lợi thế (và nguy hiểm) của việc giữ id giống hệt nhau cho các phiên bản lớp đã thay đổi. Đó là một tập tin với một đối tượng của phiên bản cũ sẽ được đọc (deserialized) với phiên bản mới hoặc ngược lại. –

Trả lời

111

Nếu không có bất kỳ plugin:

Bạn chỉ cần kích hoạt tính năng nổi bật: (Idea v .2016 và 2017, các phiên bản trước có thể có cùng cài đặt tương tự hoặc tương tự)

File -> Settings -> Editor -> Inspections -> Java -> Serialization issues - > Serializable lớp mà không có 'serialVersionUID' - thiết lập cờ và bấm vào 'OK'.

Bây giờ, nếu lớp học của bạn triển khai Serializable, bạn sẽ thấy đánh dấu và alt + Nhập tên lớp sẽ đề xuất tạo private static final long serialVersionUID.

+0

@SalilJunior Không thực sự. Built-In khả năng tạo ra một serialVersionUID được gắn với cảnh báo kiểm tra. Bạn đang mắc kẹt khi bạn không muốn kích hoạt cảnh báo kiểm tra nhưng tạo serialVersionUID trong một số trường hợp. –

+0

Giải pháp này không có tác dụng đối với tôi, tôi chỉ có thể thấy các tùy chọn: loại bỏ thực thi Parcelable, thay thế việc triển khai có thể thực hiện được, tạo thử nghiệm, tạo phân lớp và tạo gói riêng. Lớp tôi đang sử dụng thực hiện Bưu kiện và Serializable cùng một lúc. Bất kỳ ý tưởng? – gonver

+0

Bạn đã kiểm tra cờ cần thiết được đặt trong cài đặt ở trên chưa? Thử nghiệm trong cả ý tưởng v16 và v17, hoạt động tốt. Ngoài ra kiểm tra các thiết lập bổ sung để kiểm tra như vậy sau khi nhấp vào nó trong cửa sổ cài đặt (bên phải). –

27

Install GenerateSerialVersionUID Plugin

+0

Tại sao cài đặt một plugin khi điều này có thể dễ dàng được thực hiện như được hiển thị bởi @Serhii dưới đây. – shaz

+2

@shaz Tôi thích khi kiểm tra đó bị vô hiệu hóa, nhưng đối với một số lớp nhận được serialVersionUID rõ ràng là bắt buộc. Tôi không muốn kiểm tra mất tập trung trên mỗi lớp trong khi tôi cần serialVersionUID chỉ cho một lớp. – Timofey

1

IntelliJ IDEA Plugins/GenerateSerialVersionUID https://plugins.jetbrains.com/plugin/?idea&id=185

rất đẹp, rất dễ dàng để cài đặt. bạn có thể cài đặt từ menu plugin, chọn cài đặt từ đĩa, chọn tệp jar bạn đã giải nén trong thư mục lib. khởi động lại, kiểm soát + ins, và nó bật lên để tạo ra UID nối tiếp từ menu. yêu nó. :-)

+0

@PatchRhytm câu trả lời của bạn là một bản sao. Hãy loại bỏ nó. –

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