Uses of Class java.lang.Module (Java SE 10 & JDK 10 )

## Uses of Class
java.lang.Module

- Packages that use Module
  Package | Description
  --- | ---
  java.lang | Provides classes that are fundamental to the design of the Java programming language.
  java.lang.instrument | Provides services that allow Java programming language agents to instrument programs running on the JVM.
  java.util | Contains the collections framework, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.

- - ### Uses of Module in java.lang

    Methods in java.lang that return Module
    Modifier and Type | Method | Description
    --- | --- | ---
    `Module` | Module.`addExports​(String pn, Module other)` | If the caller's module is this module then update this module to export the given package to the given module.
    `Module` | Module.`addOpens​(String pn, Module other)` | If this module has opened a package to at least the caller module then update this module to open the package to the given module.
    `Module` | Module.`addReads​(Module other)` | If the caller's module is this module then update this module to read the given module.
    `Module` | Module.`addUses​(Class<?> service)` | If the caller's module is this module then update this module to add a service dependence on the given service type.
    `Module` | Class.`getModule()` | Returns the module that this class or interface is a member of.
    `Module` | ClassLoader.`getUnnamedModule()` | Returns the unnamed `Module` for this class loader.

    Methods in java.lang that return types with arguments of type Module
    Modifier and Type | Method | Description
    --- | --- | ---
    `Optional<Module>` | ModuleLayer.`findModule​(String name)` | Returns the module with the given name in this layer, or if not in this layer, the parent layers.
    `Set<Module>` | ModuleLayer.`modules()` | Returns the set of the modules in this layer.

    Methods in java.lang with parameters of type Module
    Modifier and Type | Method | Description
    --- | --- | ---
    `Module` | Module.`addExports​(String pn, Module other)` | If the caller's module is this module then update this module to export the given package to the given module.
    `ModuleLayer.Controller` | ModuleLayer.Controller.`addExports​(Module source, String pn, Module target)` | Updates module `source` in the layer to export a package to module `target`.
    `Module` | Module.`addOpens​(String pn, Module other)` | If this module has opened a package to at least the caller module then update this module to open the package to the given module.
    `ModuleLayer.Controller` | ModuleLayer.Controller.`addOpens​(Module source, String pn, Module target)` | Updates module `source` in the layer to open a package to module `target`.
    `Module` | Module.`addReads​(Module other)` | If the caller's module is this module then update this module to read the given module.
    `ModuleLayer.Controller` | ModuleLayer.Controller.`addReads​(Module source, Module target)` | Updates module `source` in the layer to read module `target`.
    `boolean` | Module.`canRead​(Module other)` | Indicates if this module reads the given module.
    `static Class<?>` | Class.`forName​(Module module, String name)` | Returns the `Class` with the given binary name in the given module.
    `System.Logger` | System.LoggerFinder.`getLocalizedLogger​(String name, ResourceBundle bundle, Module module)` | Returns a localizable instance of `Logger` for the given `module`.
    `abstract System.Logger` | System.LoggerFinder.`getLogger​(String name, Module module)` | Returns an instance of `Logger` for the given `module`.
    `boolean` | Module.`isExported​(String pn, Module other)` | Returns `true` if this module exports the given package to at least the given module.
    `boolean` | Module.`isOpen​(String pn, Module other)` | Returns `true` if this module has opened a package to at least the given module.

  - ### Uses of Module in java.lang.instrument

    Methods in java.lang.instrument with parameters of type Module
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | Instrumentation.`isModifiableModule​(Module module)` | Tests whether a module can be modified with `redefineModule`.
    `void` | Instrumentation.`redefineModule​(Module module, Set<Module> extraReads, Map<String,Set<Module>> extraExports, Map<String,Set<Module>> extraOpens, Set<Class<?>> extraUses, Map<Class<?>,List<Class<?>>> extraProvides)` | Redefine a module to expand the set of modules that it reads, the set of packages that it exports or opens, or the services that it uses or provides.
    `default byte[]` | ClassFileTransformer.`transform​(Module module, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer)` | Transforms the given class file and returns a new replacement class file.

    Method parameters in java.lang.instrument with type arguments of type Module
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Instrumentation.`redefineModule​(Module module, Set<Module> extraReads, Map<String,Set<Module>> extraExports, Map<String,Set<Module>> extraOpens, Set<Class<?>> extraUses, Map<Class<?>,List<Class<?>>> extraProvides)` | Redefine a module to expand the set of modules that it reads, the set of packages that it exports or opens, or the services that it uses or provides.
    `void` | Instrumentation.`redefineModule​(Module module, Set<Module> extraReads, Map<String,Set<Module>> extraExports, Map<String,Set<Module>> extraOpens, Set<Class<?>> extraUses, Map<Class<?>,List<Class<?>>> extraProvides)` | Redefine a module to expand the set of modules that it reads, the set of packages that it exports or opens, or the services that it uses or provides.

  - ### Uses of Module in java.util

    Methods in java.util with parameters of type Module
    Modifier and Type | Method | Description
    --- | --- | ---
    `static ResourceBundle` | ResourceBundle.`getBundle​(String baseName, Module module)` | Gets a resource bundle using the specified base name and the default locale on behalf of the specified module.
    `static ResourceBundle` | ResourceBundle.`getBundle​(String baseName, Locale targetLocale, Module module)` | Gets a resource bundle using the specified base name and locale on behalf of the specified module.