Các Modifier
for Exports
trong doc java khẳng định rằnglà gì chênh lệch giữa tổng hợp và Modifier uỷ thác trong Java9
MANDATED
Việc xuất khẩu đã ngầm tuyên bố trong nguồn của module khai.
SYNTHETIC
Xuất không được khai báo rõ ràng hoặc ngầm định trong nguồn khai báo mô-đun .
Nhìn vào vài module-info.class
es, tôi có thể thấy rằng có chung hai loại tập quán:
module java.base {
...
exports java.util; // type 1
exports java.util.concurrent;
exports java.util.concurrent.atomic;
exports jdk.internal to jdk.jfr; // type 2
exports jdk.internal.jmod to
jdk.compiler,
jdk.jlink;
...
}
Các Qualified Exports làm mô tả hai loại nhưng không có tài liệu tham khảo cho các loại enum. Đây có phải là các loại khác nhau được đề cập trong tài liệu không?
Q1. Nói chung, SYNTHETIC
và MANDATED
là các công cụ sửa đổi được sử dụng như trong Exports
, ModuleDescriptor
, Opens
và Requires
. Sự khác nhau giữa hai loại này và cái nào được ưa thích hơn cái khác trong thực tế?
Q2. Ví dụ về số Synthetic
Modifier
, nếu không được khai báo trong nguồn của mô-đun thì sao?
Không phải bạn là người trả lời những câu hỏi này? ;-) – GhostCat
@GhostCat Haha..Tôi sẽ cố gắng hết mình cho cái này tôi đoán.Chỉ cần không thể tìm thấy một tài liệu tham khảo đơn giản ở bất cứ đâu. Hãy dựa vào cộng đồng để trở lại với một số chi tiết tốt hơn :) – nullpointer
Chúng ta hãy chờ Alan trả lời câu hỏi này nhưng tôi đoán rằng xuất khẩu tổng hợp có thể là những thứ được tạo cho các mô-đun tự động và mô-đun chưa được đặt tên. Các mô đun này xuất khẩu các gói mặc dù chúng không khai báo mệnh đề 'exports'. Nhưng tôi thực sự chỉ đoán ở đây ... – Nicolai