JPMS Package Access Boundary Under JDK 16: Exporting Library API Without Opening Packages to Reflection
A library targeting the module path must declare its package boundaries explicitly in module-info.java . With the JDK 16 strong-encapsulation default introduced by JEP 396, reflective access to internal JDK packages is denied unless explicitly opened, and the same boundary logic applies to a library's own packages: public alone does not make a type accessibl