Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikibooksThe Free Textbook Project
Search

Modules

100% developed
From Wikibooks, open books for an open world
<Java Programming
This page may need to bereviewed for quality.

NavigateLanguage Fundamentals topic:()


Since Java 9, one can usemodules to better encapsulate code. TheJava Platform Module System (JPMS) is used to specify distribution of a collection of packages.

A module be used to specify a collection of packages belonging to the public API of a Java program. This is primarily useful for a library, which may contain classes intended for internal use.

The module declaration is placed in a file namedmodule-info.java at the root of the module’s source-file hierarchy. The JDK will verify dependencies and interactions between modules both at compile-time and runtime.

For example, the following module declaration declares that the modulecom.foo.bar depends on anothercom.foo.baz module, and exports the following packages:com.foo.bar.alpha andcom.foo.bar.beta:

module com.foo.bar {requires com.foo.baz;exports com.foo.bar.alpha;exports com.foo.bar.beta;}

Java modules use the following keywords:

  • exports: used in a module declaration to specify which packages are available to other modules
  • module: declares a module
  • open: indicates that all classes in a package are accessible via reflection by other modules
  • opens: used to open a specific package for reflection to other modules
  • provides: used to declare that a module provides an implementation of a service interface
  • requires: used in a module declaration to specify that the module depends on another module
  • to: used with theopens directive to specify which module is allowed to reflectively access the package
  • transitive: used with therequires directive to indicate that a module not only requires another module but also makes that module's dependencies available to modules that depend on it
  • uses: used in a module to declare that the module is using a service (i.e. it will consume a service provided by other modules)
  • with: used with theprovides directive to specify which implementation of a service is provided by the module

As of Java 25, modules can themselves be imported, automatically importing all exported packages. This is done usingimport module. For example,importmodulejava.sql; is equivalent to

importjava.sql.*;importjavax.sql.*;// Remaining indirect exports from java.logging, java.transaction.xa, and java.xml

Similarly,importmodulejava.base;, similarly, imports all 54 packages belonging tojava.base.

importmodulejava.base;/** * Importing module java.base allows us to avoid manually importing most classes * The following classes (outside of java.lang) are used: * - java.text.MessageFormat * - java.util.Date * - java.util.List * - java.util.concurrent.ThreadLocalRandom */publicclassExample{publicstaticvoidmain(String[]args){List<String>colours=List.of("Red","Orange","Yellow","Green","Blue","Indigo","Violet");IO.println(MessageFormat.format("My favourite colour is {0} and today is {1,date,long}",colours.get(ThreadLocalRandom.current().nextInt(colours.size())),newDate()));}}



Retrieved from "https://en.wikibooks.org/w/index.php?title=Java_Programming/Modules&oldid=4538883"
Category:

[8]ページ先頭

©2009-2025 Movatter.jp