Java module что это

Class Module

Named modules have a name and are constructed by the Java Virtual Machine when a graph of modules is defined to the Java virtual machine to create a module layer.

An unnamed module does not have a name. There is an unnamed module for each ClassLoader , obtained by invoking its getUnnamedModule method. All types that are not in a named module are members of their defining class loader’s unnamed module.

The package names that are parameters or returned by methods defined in this class are the fully-qualified names of the packages as defined in section 6.5.3 of The Java Language Specification , for example, «java.lang» .

Unless otherwise specified, passing a null argument to a method in this class causes a NullPointerException to be thrown.

Method Summary

If the caller’s module is this module then update this module to export the given package to the given module.

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.

If the caller’s module is this module then update this module to add a service dependence on the given service type.

Returns this element’s annotation for the specified type if such an annotation is present, else null.

Methods declared in class java.lang.Object

Methods declared in interface java.lang.reflect.AnnotatedElement

Method Details

isNamed

getName

getClassLoader

Returns the ClassLoader for this module. If there is a security manager then its checkPermission method if first called with a RuntimePermission(«getClassLoader») permission to check that the caller is allowed to get access to the class loader.

getDescriptor

getLayer

Returns the module layer that contains this module or null if this module is not in a module layer. A module layer contains named modules and therefore this method always returns null when invoked on an unnamed module. Dynamic modules are named modules that are generated at runtime. A dynamic module may or may not be in a module layer.

isNativeAccessEnabled

Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.

canRead

Indicates if this module reads the given module. This method returns true if invoked to test if this module reads itself. It also returns true if invoked on an unnamed module (as unnamed modules read all modules).

Читайте также:  Html get user agent

addReads

If the caller’s module is this module then update this module to read the given module. This method is a no-op if other is this module (all modules read themselves), this module is an unnamed module (as unnamed modules read all modules), or this module already reads other .

isExported

Returns true if this module exports the given package to at least the given module. This method returns true if invoked to test if a package in this module is exported to itself. It always returns true when invoked on an unnamed module. A package that is open to the given module is considered exported to that module at run-time and so this method returns true if the package is open to the given module. This method does not check if the given module reads this module.

isOpen

Returns true if this module has opened a package to at least the given module. This method returns true if invoked to test if a package in this module is open to itself. It returns true when invoked on an open module with a package in the module. It always returns true when invoked on an unnamed module. This method does not check if the given module reads this module.

isExported

Returns true if this module exports the given package unconditionally. This method always returns true when invoked on an unnamed module. A package that is opened unconditionally is considered exported unconditionally at run-time and so this method returns true if the package is opened unconditionally. This method does not check if the given module reads this module.

isOpen

Returns true if this module has opened a package unconditionally. This method always returns true when invoked on an unnamed module. Additionally, it always returns true when invoked on an open module with a package in the module. This method does not check if the given module reads this module.

addExports

If the caller’s module is this module then update this module to export the given package to the given module. This method has no effect if the package is already exported (or open) to the given module.

addOpens

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. Opening a package with this method allows all types in the package, and all their members, not just public types and their public members, to be reflected on by the given module when using APIs that support private access or a way to bypass or suppress default Java language access control checks. This method has no effect if the package is already open to the given module.

Читайте также:  Присвоить значение элементу массива java

addUses

If the caller’s module is this module then update this module to add a service dependence on the given service type. This method is intended for use by frameworks that invoke ServiceLoader on behalf of other modules or where the framework is passed a reference to the service type by other code. This method is a no-op when invoked on an unnamed module or an automatic module. This method does not cause resolveAndBind to be re-run.

canUse

Indicates if this module has a service dependence on the given service type. This method always returns true when invoked on an unnamed module or an automatic module.

getPackages

Returns the set of package names for the packages in this module. For named modules, the returned set contains an element for each package in the module. For unnamed modules, the returned set contains an element for each package that has been defined in the unnamed module.

getAnnotation

Returns this element’s annotation for the specified type if such an annotation is present, else null. This method returns null when invoked on an unnamed module. Note that any annotation returned by this method is a declaration annotation.

getAnnotations

Returns annotations that are present on this element. If there are no annotations present on this element, the return value is an array of length 0. The caller of this method is free to modify the returned array; it will have no effect on the arrays returned to other callers. This method returns an empty array when invoked on an unnamed module. Note that any annotations returned by this method are declaration annotations.

getDeclaredAnnotations

Returns annotations that are directly present on this element. This method ignores inherited annotations. If there are no annotations directly present on this element, the return value is an array of length 0. The caller of this method is free to modify the returned array; it will have no effect on the arrays returned to other callers. This method returns an empty array when invoked on an unnamed module. Note that any annotations returned by this method are declaration annotations.

Читайте также:  Все темные цвета html

getResourceAsStream

  • If the resource name ends with » .class » then it is not encapsulated.
  • A package name is derived from the resource name. If the package name is a package in the module then the resource can only be located by the caller of this method when the package is open to at least the caller’s module. If the resource is not in a package in the module then the resource is not encapsulated.

In the above, the package name for a resource is derived from the subsequence of characters that precedes the last ‘/’ in the name and then replacing each ‘/’ character in the subsequence with ‘.’ . A leading slash is ignored when deriving the package name. As an example, the package name derived for a resource named » a/b/c/foo.properties » is » a.b.c «. A resource name with the name » META-INF/MANIFEST.MF » is never encapsulated because » META-INF » is not a legal package name.

This method returns null if the resource is not in this module, the resource is encapsulated and cannot be located by the caller, or access to the resource is denied by the security manager.

toString

Returns the string representation of this module. For a named module, the representation is the string «module» , followed by a space, and then the module name. For an unnamed module, the representation is the string «unnamed module» , followed by a space, and then an implementation specific string that identifies the unnamed module.

Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2023, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.

Источник

Оцените статью