Returns the top-level classes and interfaces within this package. Note that subpackages are not considered to be enclosed by a package.
Returns the enclosing module if such a module exists; otherwise
One situation where a module does not exist for a package is if
the environment does not include modules, such as an annotation
processing environment configured for a source version without modules.
null if no such module exists
Returns the fully qualified name of this package. This is also known as the package's canonical name. For an unnamed package, an empty name is returned.
@apiNote The fully qualified name of a named package that is
not a subpackage of a named package is its simple name. The
fully qualified name of a named package that is a subpackage of
another named package consists of the fully qualified name of
the containing package, followed by "
.", followed by the simple
(member) name of the subpackage.
@jls 6.7 Fully Qualified Names and Canonical Names