JPMS Modules and Strong Encapsulation
A module declares dependencies and exported packages.
module com.example.orders {
requires java.net.http;
exports com.example.orders.api;
}
exports controls package access across modules. opens is relevant when reflective access to otherwise encapsulated packages is required.
Packages organize names; modules define a larger dependency and encapsulation boundary.
Key Takeaways
- Packages and modules solve different levels of organization.
exportscontrols cross-module accessibility.opensis relevant to reflective access.