Mặc dù tôi rất chậm trả lời câu hỏi, nhưng điều này chắc chắn sẽ giúp ích rất nhiều. Nếu tôi không sai, câu hỏi cụ thể của bạn sẽ tóm tắt về điều này - Ý nghĩa của một lớp được khai báo là không có không có công cụ sửa đổi rõ ràng?
Hãy nhìn vào lớp học này hiện diện trong java.util package-
class JumboEnumSet<E extends Enum<E>> extends EnumSet<E>
Cũng xem trong cùng một package-
class RegularEnumSet<E extends Enum<E>> extends EnumSet<E>
Bạn thấy cả hai người trong số họ tuyên bố với không sửa đổi rõ ràng. Bạn có tự hỏi tại sao gói riêng tư hạn chế không? Dưới đây là những lý do từ cuốn sách tuyệt vời Effective Java 2nd Edition bởi Joshua Bloch # Item1
Lớp java.util.EnumSet (khoản 32), được giới thiệu trong phiên bản 1.5, có không constructors công cộng, chỉ các nhà máy tĩnh. Chúng trả về một trong hai cách triển khai, tùy thuộc vào kích thước của kiểu enum cơ bản: nếu nó có sáu mươi bốn hoặc ít hơn các phần tử, như là hầu hết các kiểu enum làm, các nhà máy tĩnh trả về cá thể RegularEnumSet , được hỗ trợ bởi Dài; nếu kiểu enum có sáu mươi lăm phần tử trở lên, các nhà máy trả về một cá thể JumboEnumSet, được hỗ trợ bởi một mảng dài .
Move nhanh chóng trên, ông tiếp tục adds-
Sự tồn tại của hai lớp thực hiện là vô hình để khách hàng. Nếu RegularEnumSet ngừng cung cấp các lợi thế về hiệu suất cho các loại enum nhỏ, nó có thể được loại bỏ khỏi bản phát hành trong tương lai mà không có các hiệu ứng bị ảnh hưởng.Tương tự như vậy, một bản phát hành trong tương lai có thể thêm một triển khai thực hiện thứ ba hoặc thứ tư của EnumSet nếu nó có lợi cho hiệu suất. Khách hàng không biết và cũng không quan tâm đến lớp đối tượng mà họ nhận được từ nhà máy; họ chỉ quan tâm rằng đó là một số phân lớp của EnumSet.
Nguồn
2016-07-28 14:30:38
Khi tăng cường giữ nguyên thực hành đặt tên chỉ trong trường hợp, hãy lưu ý rằng [trạng thái JLS] (http://java.sun.com/docs/books/jls/third_edition/html/packages.html# 26783) rằng "hệ thống máy chủ có thể ... thực thi hạn chế rằng nó là một lỗi biên dịch thời gian nếu một loại không được tìm thấy trong một tập tin [với quy ước đặt tên]" ngay cả trong trường hợp loại chỉ "được gọi bằng mã trong các đơn vị biên dịch khác của gói trong đó loại được khai báo "(gói-riêng tư). –