#module-info.javaの書き方
##問題点と解決策
モジュールの名前に、パッケージと同じ(またはほぼ同じ)名前を付けた例が散見された。
間違いではないが非常に紛らわしく混乱した。
どこにどのレベルの名称を書くのか、構文レベルで事前把握しておくが吉。
ModuleDeclaration
{Annotation} [open] module Identifier {. Identifier} { {ModuleDirective} }
ModuleDirective
requires {RequiresModifier} ModuleName ;
exports PackageName [to ModuleName {, ModuleName}] ;
opens PackageName [to ModuleName {, ModuleName}] ;
uses TypeName ;
provides TypeName with TypeName {, TypeName} ;
RequiresModifier
(one of)
transitive static
提供側 | 単位 | 利用側 | 単位 |
---|---|---|---|
exports | パッケージ | requires | モジュール |
opens | パッケージ | - | |
provides | タイプ | uses | タイプ |