クラスModule
- ã™ã¹ã¦ã®å®Ÿè£…ã•れãŸã‚¤ãƒ³ã‚¿ãƒ•ェース:
AnnotatedElement
namedã¾ãŸã¯åå‰ãªã—)を表ã—ã¾ã™ã€‚
åå‰ä»˜ãモジュールã«ã¯nameãŒã‚りã€ã€Œãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å±¤ã€ã‚’作æˆã™ã‚‹ãŸã‚ã«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ã‚°ãƒ©ãƒ•ãŒJava仮想マシンã«å®šç¾©ã•れるã¨ã€Java Virtual Machineã«ã‚ˆã£ã¦æ§‹æˆã•れã¾ã™ã€‚
åå‰ã®ãªã„モジュールã«ã¯åå‰ãŒã‚りã¾ã›ã‚“。 ClassLoaderã”ã¨ã«åå‰ã®ãªã„モジュールãŒã‚りã€getUnnamedModuleメソッドを呼ã³å‡ºã—ã¦å–å¾—ã•れã¾ã™ã€‚ åå‰ä»˜ãモジュールã«å˜åœ¨ã—ãªã„ã™ã¹ã¦ã®åž‹ã¯ã€ãã®å®šç¾©ã‚¯ãƒ©ã‚¹ãƒ»ãƒãƒ¼ãƒ€ãƒ¼ã®åå‰ãªã—モジュールã®ãƒ¡ãƒ³ãƒãƒ¼ã§ã™ã€‚
パラメータã§ã‚るパッケージåã€ã¾ãŸã¯ã“ã®ã‚¯ãƒ©ã‚¹ã§å®šç¾©ã•れãŸãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã£ã¦è¿”ã•れるパッケージåã¯ã€ã€ŒJava言語仕様ã€ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³6.5.3ã§å®šç¾©ã•れã¦ã„るパッケージã®å®Œå…¨ä¿®é£¾åã§ã™(例: "java.lang")。
ç‰¹ã«æŒ‡å®šã—ãªã„ã‹ãŽã‚Šã€ã“ã®ã‚¯ãƒ©ã‚¹ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«null引数を渡ã™ã¨ã€NullPointerExceptionãŒã‚¹ãƒãƒ¼ã•れã¾ã™ã€‚
- Java言語仕様をå‚ç…§ã—ã¦ãã ã•ã„:
-
7.7 モジュール宣言
- å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 9
- é–¢é€£é …ç›®:
-
メソッドã®ã‚µãƒžãƒªãƒ¼
修飾åã¨åž‹ãƒ¡ã‚½ãƒƒãƒ‰èª¬æ˜ŽaddExports(String pn, Module other) 呼ã³å‡ºã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ã‚ã‚‹å ´åˆã¯ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã—ã¦ã€æŒ‡å®šã•れãŸãƒ‘ッケージを指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã€å°‘ãªãã¨ã‚‚呼出ã—元モジュールã¸ã®ãƒ‘ッケージopenedãŒã‚ã‚‹å ´åˆã¯ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã—ã¦ã€æŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ãƒ‘ッケージを開ãã¾ã™ã€‚呼ã³å‡ºã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ã‚ã‚‹å ´åˆã¯ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã—ã¦ã€æŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–りã¾ã™ã€‚呼出ã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ã‚ã‚‹å ´åˆã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã—ã¦ã€æŒ‡å®šã•れãŸã‚µãƒ¼ãƒ“ス・タイプã«ã‚µãƒ¼ãƒ“スä¾å˜ã‚’è¿½åŠ ã—ã¾ã™ã€‚booleanã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒæŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–ã‚‹ã‹ã©ã†ã‹ã‚’示ã—ã¾ã™ã€‚booleanã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã€æŒ‡å®šã•れãŸã‚µãƒ¼ãƒ“ス・タイプã¸ã®ã‚µãƒ¼ãƒ“スä¾å˜ãŒã‚ã‚‹ã‹ã©ã†ã‹ã‚’示ã—ã¾ã™ã€‚<T extends Annotation>
TgetAnnotation(Class<T> annotationClass) å˜åœ¨ã™ã‚‹å ´åˆã¯ã€ã“ã®è¦ç´ ã®æŒ‡å®šã•れãŸåž‹ã®æ³¨é‡ˆã‚’è¿”ã—ã€ãã†ã§ãªã„å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚ã“ã®è¦ç´ ã«å˜åœ¨ã™ã‚‹æ³¨é‡ˆã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ClassLoaderã‚’è¿”ã—ã¾ã™ã€‚ã“ã®è¦ç´ ã«ç›´æŽ¥å˜åœ¨ã™ã‚‹æ³¨é‡ˆã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«è¨˜è¿°åã‚’è¿”ã™ã‹ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒåå‰ã®ãªã„モジュールã®å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚getLayer()ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’å«ã‚€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ»ãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚’è¿”ã™ã‹ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ»ãƒ¬ã‚¤ãƒ¤ãƒ¼ã«ãªã„å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚getName()モジュールåã‚’è¿”ã™ã‹ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒåå‰ã®ãªã„モジュールã®å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®ãƒ‘ッケージã®ãƒ‘ッケージåã®ã‚»ãƒƒãƒˆã‚’è¿”ã—ã¾ã™ã€‚getResourceAsStream(String name) ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’èªã¿å–ã‚‹ãŸã‚ã®å…¥åŠ›ã‚¹ãƒˆãƒªãƒ¼ãƒ ã‚’è¿”ã—ã¾ã™ã€‚booleanisExported(String pn) ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒæŒ‡å®šã•れãŸãƒ‘ッケージを無æ¡ä»¶ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã€trueã‚’è¿”ã—ã¾ã™ã€‚booleanisExported(String pn, Module other) ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒæŒ‡å®šã•れãŸãƒ‘ッケージを少ãªãã¨ã‚‚指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã€trueã‚’è¿”ã—ã¾ã™ã€‚booleanisNamed()ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒåå‰ä»˜ãモジュールã§ã‚ã‚‹å ´åˆã¯ã€trueã‚’è¿”ã—ã¾ã™ã€‚booleanã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã€Œåˆ¶é™ä»˜ãã€ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹å ´åˆã¯ã€trueã‚’è¿”ã—ã¾ã™ã€‚booleanã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ç„¡æ¡ä»¶ã«ãƒ‘ッケージopenedãŒã‚ã‚‹å ´åˆã€trueã‚’è¿”ã—ã¾ã™ã€‚booleanã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã€å°‘ãªãã¨ã‚‚指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¸ã®ãƒ‘ッケージopenedãŒã‚ã‚‹å ´åˆã€trueã‚’è¿”ã—ã¾ã™ã€‚toString()ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æ–‡å—列表ç¾ã‚’è¿”ã—ã¾ã™ã€‚クラスjava.lang.Objectã§å®£è¨€ã•れãŸãƒ¡ã‚½ãƒƒãƒ‰
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitインタフェースjava.lang.reflect.AnnotatedElementã§å®£è¨€ã•れãŸãƒ¡ã‚½ãƒƒãƒ‰
getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
-
メソッドã®è©³ç´°
-
isNamed
public boolean isNamed()ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒåå‰ä»˜ãモジュールã§ã‚ã‚‹å ´åˆã¯ã€trueã‚’è¿”ã—ã¾ã™ã€‚- 戻り値:
trueãŒåå‰ä»˜ãモジュールã®å ´åˆ- Java言語仕様をå‚ç…§ã—ã¦ãã ã•ã„:
-
7.7.5 åå‰ãªã—モジュール
- é–¢é€£é …ç›®:
-
getName
public String getName()モジュールåã‚’è¿”ã™ã‹ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒåå‰ã®ãªã„モジュールã®å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚- 戻り値:
- モジュールå
-
getClassLoader
public ClassLoader getClassLoader()ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ClassLoaderã‚’è¿”ã—ã¾ã™ã€‚- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ã‚¯ãƒ©ã‚¹ãƒ»ãƒãƒ¼ãƒ€ãƒ¼
-
getDescriptor
public ModuleDescriptor getDescriptor()ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«è¨˜è¿°åã‚’è¿”ã™ã‹ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒåå‰ã®ãªã„モジュールã®å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«è¨˜è¿°å
-
getLayer
public ModuleLayer getLayer()ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’å«ã‚€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ»ãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚’è¿”ã™ã‹ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ»ãƒ¬ã‚¤ãƒ¤ãƒ¼ã«ãªã„å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚ モジュール・レイヤーã«ã¯åå‰ä»˜ãモジュールãŒå«ã¾ã‚Œã¦ã„ã‚‹ãŸã‚ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€åå‰ãªã—モジュールã§å‘¼ã³å‡ºã•れるã¨å¸¸ã«nullã‚’è¿”ã—ã¾ã™ã€‚「動的モジュールã€ã¯ã€å®Ÿè¡Œæ™‚ã«ç”Ÿæˆã•れるåå‰ä»˜ãモジュールã§ã™ã€‚ 動的モジュールã¯ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ»ãƒ¬ã‚¤ãƒ¤ãƒ¼å†…ã«ã‚ã‚‹å ´åˆã¨ãã†ã§ãªã„å ´åˆãŒã‚りã¾ã™ã€‚
- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’å«ã‚€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ»ãƒ¬ã‚¤ãƒ¤ãƒ¼
- é–¢é€£é …ç›®:
-
isNativeAccessEnabled
public boolean isNativeAccessEnabled()ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã€Œåˆ¶é™ä»˜ãã€ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹å ´åˆã¯ã€trueã‚’è¿”ã—ã¾ã™ã€‚- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã€Œåˆ¶é™ä»˜ãã€ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹å ´åˆã¯
true。 - å°Žå…¥ã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:
- 22
-
canRead
public boolean canRead(Module other) ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒæŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–ã‚‹ã‹ã©ã†ã‹ã‚’示ã—ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒè‡ªèº«ã‚’èªã¿å–ã‚‹ã‹ã©ã†ã‹ã‚’テストã™ã‚‹ãŸã‚ã«å‘¼ã³å‡ºã•れãŸå ´åˆã€trueã‚’è¿”ã—ã¾ã™ã€‚ ã¾ãŸã€åå‰ã®ãªã„モジュール(åå‰ã®ãªã„モジュールã¯ã™ã¹ã¦ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿è¾¼ã‚€)ã§å‘¼ã³å‡ºã•れãŸå ´åˆã¯ã€trueã‚’è¿”ã—ã¾ã™ã€‚- パラメータ:
other- ä»–ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«- 戻り値:
trueã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒotherã‚’èªã¿å–ã‚‹å ´åˆ- é–¢é€£é …ç›®:
-
addReads
呼ã³å‡ºã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ã‚ã‚‹å ´åˆã¯ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã—ã¦ã€æŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–りã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€otherãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«(ã™ã¹ã¦ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒè‡ªåˆ†è‡ªèº«ã‚’èªã‚€)ã§ã‚ã‚‹å ´åˆã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯ãƒŽãƒ¼ãƒ»ã‚ªãƒšãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§ã‚りã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯åå‰ã®ãªã„モジュール(åå‰ã®ãªã„モジュールã¯ã™ã¹ã¦ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿è¾¼ã‚€)ã§ã‚ã‚‹ã‹ã€ã¾ãŸã¯ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯ã™ã§ã«otherã‚’èªã¿è¾¼ã‚“ã§ã„ã¾ã™ã€‚- 実装上ã®ãƒŽãƒ¼ãƒˆ:
- ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã£ã¦è¿½åŠ ã•れãŸã€Œã‚¨ãƒƒã‚¸ã‚’èªã¿å–ã‚‹ã€ã¯weakã§ã‚りã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«å޳坆ã«ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ãªå ´åˆã€
otherãŒGCã•れるã®ã‚’防ãã“ã¨ã¯ã§ãã¾ã›ã‚“。 - パラメータ:
other- ä»–ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«
- スãƒãƒ¼:
IllegalCallerException- ã“れãŒåå‰ä»˜ãモジュールã§ã€å‘¼ã³å‡ºã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ãªã„å ´åˆ- é–¢é€£é …ç›®:
-
isExported
ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒæŒ‡å®šã•れãŸãƒ‘ッケージを少ãªãã¨ã‚‚指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã€trueã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®ãƒ‘ッケージãŒè‡ªèº«ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã•れるã‹ã©ã†ã‹ã‚’テストã™ã‚‹ãŸã‚ã«å‘¼ã³å‡ºã•れãŸå ´åˆã€
trueã‚’è¿”ã—ã¾ã™ã€‚ åå‰ã®ãªã„モジュールã§å‘¼ã³å‡ºã•れるã¨ã€å¸¸ã«trueãŒè¿”ã•れã¾ã™ã€‚ 指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«openã®ãƒ‘ッケージã¯ã€å®Ÿè¡Œæ™‚ã«ãã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã•れるã¨ã¿ãªã•れるãŸã‚ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ãŒæŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚ªãƒ¼ãƒ—ンã•れã¦ã„ã‚‹å ´åˆã¯trueã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–ã‚‹ã‹ã©ã†ã‹ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã›ã‚“。
- パラメータ:
pn- パッケージåother- ä»–ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«- 戻り値:
trueã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒãƒ‘ッケージを少ãªãã¨ã‚‚指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã™ã‚‹å ´åˆ- é–¢é€£é …ç›®:
-
isOpen
ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã€å°‘ãªãã¨ã‚‚指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¸ã®ãƒ‘ッケージopenedãŒã‚ã‚‹å ´åˆã€trueã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®ãƒ‘ッケージãŒè‡ªèº«ã«å¯¾ã—ã¦é–‹ã„ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’テストã™ã‚‹ãŸã‚ã«å‘¼ã³å‡ºã•れãŸå ´åˆã€
trueã‚’è¿”ã—ã¾ã™ã€‚ モジュール内ã®ãƒ‘ッケージをå«ã‚€openモジュールã§å‘¼ã³å‡ºã•れるã¨ã€trueãŒè¿”ã•れã¾ã™ã€‚ åå‰ã®ãªã„モジュールã§å‘¼ã³å‡ºã•れるã¨ã€å¸¸ã«trueãŒè¿”ã•れã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–ã‚‹ã‹ã©ã†ã‹ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã›ã‚“。
- APIã®ãƒŽãƒ¼ãƒˆ:
- パッケージ
pをモジュールMã«ã‚ªãƒ¼ãƒ—ンã™ã‚‹ã¨ã€Mã®ã‚³ãƒ¼ãƒ‰ã§ãƒ‘ッケージã®ã™ã¹ã¦ã®ã‚¿ã‚¤ãƒ—ã«å¯¾ã—ã¦ã€Œæ·±ã„åå°„ã€ã‚’実行ã§ãã¾ã™ã€‚ ã•らã«ã€MãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–ã‚‹ã¨ã€ãƒ‘ッケージpã§define classesを許å¯ã•れã¦ã„ã‚‹Lookupオブジェクトをå–å¾—ã§ãã¾ã™ã€‚ - パラメータ:
pn- パッケージåother- ä»–ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«- 戻り値:
trueã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒãƒ‘ッケージを少ãªãã¨ã‚‚指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«openedã—ã¦ã„ã‚‹å ´åˆ- é–¢é€£é …ç›®:
-
isExported
public boolean isExported(String pn) ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒæŒ‡å®šã•れãŸãƒ‘ッケージを無æ¡ä»¶ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã€trueã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€åå‰ã®ãªã„モジュールã§å‘¼ã³å‡ºã•れるã¨ã€å¸¸ã«
trueã‚’è¿”ã—ã¾ã™ã€‚ ç„¡æ¡ä»¶ã«openedã®ãƒ‘ッケージã¯ã€å®Ÿè¡Œæ™‚ã«ç„¡æ¡ä»¶ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã•れãŸã¨ã¿ãªã•れるãŸã‚ã€ãƒ‘ッケージãŒç„¡æ¡ä»¶ã«ã‚ªãƒ¼ãƒ—ンã•れãŸå ´åˆã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯trueã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–ã‚‹ã‹ã©ã†ã‹ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã›ã‚“。
- パラメータ:
pn- パッケージå- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒç„¡æ¡ä»¶ã«ãƒ‘ッケージをエクスãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã¯
true - é–¢é€£é …ç›®:
-
isOpen
public boolean isOpen(String pn) ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ç„¡æ¡ä»¶ã«ãƒ‘ッケージopenedãŒã‚ã‚‹å ´åˆã€trueã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€åå‰ã®ãªã„モジュールã§å‘¼ã³å‡ºã•れるã¨ã€å¸¸ã«
trueã‚’è¿”ã—ã¾ã™ã€‚ ã•らã«ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®ãƒ‘ッケージをå«ã‚€openモジュールã§å‘¼ã³å‡ºã•れるã¨ã€å¸¸ã«trueãŒè¿”ã•れã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–ã‚‹ã‹ã©ã†ã‹ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã›ã‚“。
- APIã®ãƒŽãƒ¼ãƒˆ:
- パッケージ
pをモジュールMã«ã‚ªãƒ¼ãƒ—ンã™ã‚‹ã¨ã€Mã®ã‚³ãƒ¼ãƒ‰ã§ãƒ‘ッケージã®ã™ã¹ã¦ã®ã‚¿ã‚¤ãƒ—ã«å¯¾ã—ã¦ã€Œæ·±ã„åå°„ã€ã‚’実行ã§ãã¾ã™ã€‚ ã•らã«ã€MãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’èªã¿å–ã‚‹ã¨ã€ãƒ‘ッケージpã§define classesを許å¯ã•れã¦ã„ã‚‹Lookupオブジェクトをå–å¾—ã§ãã¾ã™ã€‚ - パラメータ:
pn- パッケージå- 戻り値:
trueã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒãƒ‘ッケージを無æ¡ä»¶ã§openedã—ã¦ã„ã‚‹å ´åˆ- é–¢é€£é …ç›®:
-
addExports
呼ã³å‡ºã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ã‚ã‚‹å ´åˆã¯ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã—ã¦ã€æŒ‡å®šã•れãŸãƒ‘ッケージを指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ãŒæŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã™ã§ã«(ã¾ãŸã¯open)をエクスãƒãƒ¼ãƒˆã—ã¦ã„ã‚‹å ´åˆã«ã¯åŠ¹æžœãŒã‚りã¾ã›ã‚“。
- APIã®ãƒŽãƒ¼ãƒˆ:
- 「Java Virtual Machine仕様ã€ã®5.4.3ã®é …ã§æŒ‡å®šã•れã¦ã„るよã†ã«ã€ãƒªãƒ³ã‚±ãƒ¼ã‚¸ãƒ»ã‚¨ãƒ©ãƒ¼ã®ãŸã‚ã«ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯å‚照を解決ã—よã†ã¨ã™ã‚‹è©¦ã¿ãŒå¤±æ•—ã—ãŸå ´åˆã€ãれ以é™ã®å‚ç…§ã®è§£æ±ºã¯å¸¸ã«ã€æœ€åˆã®è§£æ±ºè©¦è¡Œã®çµæžœã¨ã—ã¦ã‚¹ãƒãƒ¼ã•れãŸã‚‚ã®ã¨åŒã˜ã‚¨ãƒ©ãƒ¼ã§å¤±æ•—ã—ã¾ã™ã€‚
- パラメータ:
pn- パッケージåother- モジュール- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«
- スãƒãƒ¼:
IllegalArgumentException-pnãŒnullã®å ´åˆã€ã¾ãŸã¯ã“れãŒåå‰ä»˜ãモジュールã§ã‚りã€ãƒ‘ッケージpnãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ‘ッケージã§ãªã„å ´åˆIllegalCallerException- ã“れãŒåå‰ä»˜ãモジュールã§ã€å‘¼ã³å‡ºã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ãªã„å ´åˆ- Java Virtual Machine仕様をå‚ç…§ã—ã¦ãã ã•ã„:
-
5.4.3 解決方法
- é–¢é€£é …ç›®:
-
addOpens
ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã€å°‘ãªãã¨ã‚‚呼出ã—元モジュールã¸ã®ãƒ‘ッケージopenedãŒã‚ã‚‹å ´åˆã¯ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã—ã¦ã€æŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ãƒ‘ッケージを開ãã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’使用ã—ã¦ãƒ‘ッケージを開ãã¨ã€ãƒ—ライベート・アクセスをサãƒãƒ¼ãƒˆã™ã‚‹APIã€ã¾ãŸã¯ãƒ‡ãƒ•ォルトã®Java言語アクセス制御ãƒã‚§ãƒƒã‚¯ã‚’ãƒã‚¤ãƒ‘スã¾ãŸã¯æŠ‘制ã™ã‚‹æ–¹æ³•を使用ã™ã‚‹ã¨ãã«ã€ãƒ‘ッケージ内ã®ã™ã¹ã¦ã®ã‚¿ã‚¤ãƒ—ã€ãŠã‚ˆã³ã™ã¹ã¦ã®ãƒ¡ãƒ³ãƒãƒ¼(パブリック・タイプã¨ãã®ãƒ‘ブリック・メンãƒãƒ¼ã®ã¿ã§ã¯ãªã„)ãŒã€æŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚ˆã£ã¦åæ˜ ã•れã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ãŒæŒ‡å®šã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«å¯¾ã—ã¦ã™ã§ã«openã§ã‚ã‚‹å ´åˆã«ã¯åŠ¹æžœãŒã‚りã¾ã›ã‚“。
- APIã®ãƒŽãƒ¼ãƒˆ:
- ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ã€Œæ¶ˆè²»è€…モジュールã€ãŒä¿®é£¾ã•れãŸopenを使用ã—ã¦ã€ŒAPIモジュールã€ã¸ã®ãƒ‘ッケージを開ããŒã€ã‚³ãƒ³ã‚·ãƒ¥ãƒ¼ãƒžãƒ»ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®ã‚¯ãƒ©ã‚¹ã®ãƒ¡ãƒ³ãƒãƒ¼ã¸ã®ãƒªãƒ•レクティブ・アクセスãŒåˆ¥ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ã‚³ãƒ¼ãƒ‰ã«å§”ä»»ã•ã‚Œã‚‹å ´åˆã«ä½¿ç”¨ã§ãã¾ã™ã€‚ APIモジュールã®ã‚³ãƒ¼ãƒ‰ã¯ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’使用ã—ã¦ã€ã‚³ãƒ³ã‚·ãƒ¥ãƒ¼ãƒžãƒ»ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ‘ッケージを他ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã‚ªãƒ¼ãƒ—ンã§ãã¾ã™ã€‚
- パラメータ:
pn- パッケージåother- モジュール- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«
- スãƒãƒ¼:
IllegalArgumentException-pnãŒnullã®å ´åˆã€ã¾ãŸã¯ã“れãŒåå‰ä»˜ãモジュールã§ã‚りã€ãƒ‘ッケージpnãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ‘ッケージã§ãªã„å ´åˆIllegalCallerException- ã“れãŒåå‰ä»˜ãモジュールã§ã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒå°‘ãªãã¨ã‚‚呼ã³å‡ºã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ãƒ‘ッケージを開ã„ã¦ã„ãªã„å ´åˆ- é–¢é€£é …ç›®:
-
addUses
呼出ã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ã‚ã‚‹å ´åˆã€ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’æ›´æ–°ã—ã¦ã€æŒ‡å®šã•れãŸã‚µãƒ¼ãƒ“ス・タイプã«ã‚µãƒ¼ãƒ“スä¾å˜ã‚’è¿½åŠ ã—ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ä»–ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ã‹ã‚りã«ServiceLoaderを呼ã³å‡ºã™ãƒ•レームワークã€ã¾ãŸã¯ãƒ•レームワークãŒä»–ã®ã‚³ãƒ¼ãƒ‰ã«ã‚ˆã£ã¦ã‚µãƒ¼ãƒ“ス・タイプã¸ã®å‚照を渡ã•れるフレームワークã§ä½¿ç”¨ã™ã‚‹ã“ã¨ã‚’目的ã¨ã—ã¦ã„ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€åå‰ã®ãªã„モジュールã¾ãŸã¯è‡ªå‹•モジュールã§å‘¼ã³å‡ºã•れãŸå ´åˆã€no-opã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã¯ã€
resolveAndBindã¯å†å®Ÿè¡Œã•れã¾ã›ã‚“。- パラメータ:
service- サービス型- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«
- スãƒãƒ¼:
IllegalCallerException- ã“れãŒåå‰ä»˜ãモジュールã§ã€å‘¼ã³å‡ºã—å…ƒã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ãªã„å ´åˆ- é–¢é€£é …ç›®:
-
canUse
public boolean canUse(Class<?> service) ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã€æŒ‡å®šã•れãŸã‚µãƒ¼ãƒ“ス・タイプã¸ã®ã‚µãƒ¼ãƒ“スä¾å˜ãŒã‚ã‚‹ã‹ã©ã†ã‹ã‚’示ã—ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€åå‰ã®ãªã„モジュールã¾ãŸã¯è‡ªå‹•モジュールã§å‘¼ã³å‡ºã•れるã¨ã€å¸¸ã«trueã‚’è¿”ã—ã¾ã™ã€‚- パラメータ:
service- サービス型- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã‚µãƒ¼ãƒ“ス型
stを使用ã™ã‚‹å ´åˆã¯true - é–¢é€£é …ç›®:
-
getPackages
ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®ãƒ‘ッケージã®ãƒ‘ッケージåã®ã‚»ãƒƒãƒˆã‚’è¿”ã—ã¾ã™ã€‚åå‰ä»˜ãモジュールã®å ´åˆã€è¿”ã•れるセットã«ã¯ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®å„パッケージã®è¦ç´ ãŒå«ã¾ã‚Œã¾ã™ã€‚
åå‰ã®ãªã„モジュールã®å ´åˆã€è¿”ã•れるセットã«ã¯ã€åå‰ã®ãªã„モジュール内ã®
has been definedãŒæŒã¤å„パッケージã®è¦ç´ ãŒå«ã¾ã‚Œã¾ã™ã€‚- 戻り値:
- ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®ãƒ‘ッケージã®ãƒ‘ッケージåã®ã‚»ãƒƒãƒˆ
-
getAnnotation
public <T extends Annotation> T getAnnotation(Class<T> annotationClass) å˜åœ¨ã™ã‚‹å ´åˆã¯ã€ã“ã®è¦ç´ ã®æŒ‡å®šã•れãŸåž‹ã®æ³¨é‡ˆã‚’è¿”ã—ã€ãã†ã§ãªã„å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€åå‰ã®ãªã„モジュールã§å‘¼ã³å‡ºã•れãŸã¨ãã«nullã‚’è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã£ã¦è¿”ã•れる注釈ã¯å®£è¨€æ³¨é‡ˆã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
- 定義:
getAnnotationã€ã‚¤ãƒ³ã‚¿ãƒ•ェースAnnotatedElement- 型パラメータ:
T- å•åˆã›å¯¾è±¡ãŠã‚ˆã³å˜åœ¨ã™ã‚‹å ´åˆã¯æˆ»ã™æ³¨é‡ˆã®ã‚¿ã‚¤ãƒ—- パラメータ:
annotationClass- 注釈型ã«å¯¾å¿œã™ã‚‹Classオブジェクト- 戻り値:
- å˜åœ¨ã™ã‚‹å ´åˆã¯ã€ã“ã®è¦ç´ ã®æŒ‡å®šã•ã‚ŒãŸæ³¨é‡ˆåž‹ã®æ³¨é‡ˆã€‚ãã†ã§ãªã„å ´åˆã¯null
-
getAnnotations
public Annotation[] getAnnotations()ã“ã®è¦ç´ ã«å˜åœ¨ã™ã‚‹æ³¨é‡ˆã‚’è¿”ã—ã¾ã™ã€‚ ã“ã®è¦ç´ ã«å˜åœ¨ã™ã‚‹æ³¨é‡ˆãŒãªã„å ´åˆã€æˆ»ã‚Šå€¤ã¯é•·ã•0ã®é…列ã§ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å‘¼å‡ºã—å…ƒã¯ã€è¿”ã•れãŸé…列を自由ã«å¤‰æ›´ã™ã‚‹ã“ã¨ãŒã§ãã€ã“れã¯ã»ã‹ã®å‘¼å‡ºã—å…ƒã«è¿”ã•れãŸé…列ã«å½±éŸ¿ã‚’åŠã¼ã—ã¾ã›ã‚“。 ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€åå‰ã®ãªã„モジュールã§å‘¼ã³å‡ºã•れãŸã¨ãã«ç©ºã®é…列を返ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã£ã¦è¿”ã•れる注釈ã¯å®£è¨€æ³¨é‡ˆã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
- 定義:
getAnnotationsã€ã‚¤ãƒ³ã‚¿ãƒ•ェースAnnotatedElement- 戻り値:
- ã“ã®è¦ç´ ã«å˜åœ¨ã™ã‚‹æ³¨é‡ˆ
-
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()ã“ã®è¦ç´ ã«ç›´æŽ¥å˜åœ¨ã™ã‚‹æ³¨é‡ˆã‚’è¿”ã—ã¾ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ç¶™æ‰¿ã•ã‚ŒãŸæ³¨é‡ˆã‚’無視ã—ã¾ã™ã€‚ ã“ã®è¦ç´ ã«ç›´æŽ¥å˜åœ¨ã™ã‚‹æ³¨é‡ˆãŒãªã„å ´åˆã€æˆ»ã‚Šå€¤ã¯é•·ã•0ã®é…列ã§ã™ã€‚ ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å‘¼å‡ºã—å…ƒã¯ã€è¿”ã•れãŸé…列を自由ã«å¤‰æ›´ã™ã‚‹ã“ã¨ãŒã§ãã€ã“れã¯ã»ã‹ã®å‘¼å‡ºã—å…ƒã«è¿”ã•れãŸé…列ã«å½±éŸ¿ã‚’åŠã¼ã—ã¾ã›ã‚“。 ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€åå‰ã®ãªã„モジュールã§å‘¼ã³å‡ºã•れãŸã¨ãã«ç©ºã®é…列を返ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã£ã¦è¿”ã•れる注釈ã¯å®£è¨€æ³¨é‡ˆã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。
- 定義:
getDeclaredAnnotationsã€ã‚¤ãƒ³ã‚¿ãƒ•ェースAnnotatedElement- 戻り値:
- ã“ã®è¦ç´ ã«ç›´æŽ¥å˜åœ¨ã™ã‚‹æ³¨é‡ˆ
-
getResourceAsStream
public InputStream getResourceAsStream(String name) throws IOException ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’èªã¿å–ã‚‹ãŸã‚ã®å…¥åŠ›ã‚¹ãƒˆãƒªãƒ¼ãƒ ã‚’è¿”ã—ã¾ã™ã€‚nameパラメータã¯ã€ãƒªã‚½ãƒ¼ã‚¹ã‚’è˜åˆ¥ã™ã‚‹'/'区切りã®ãƒ‘スåã§ã™ã€‚Class.getResourceAsStreamã¨åŒæ§˜ã«ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ã‚¯ãƒ©ã‚¹ãƒ»ãƒãƒ¼ãƒ€ãƒ¼findResource(String,String)メソッドã«å§”ä»»ã—ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å(モジュールãŒç„¡åã®å ´åˆã¯null)ãŠã‚ˆã³ãƒªã‚½ãƒ¼ã‚¹ã®åå‰ã§å‘¼ã³å‡ºã—ã¾ã™ã€‚ リソースåã®å…ˆé ã«ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ãŒã‚ã‚‹å ´åˆã¯ã€å§”ä»»ã®å‰ã«å‰Šé™¤ã•れã¾ã™ã€‚åå‰ä»˜ãモジュール内ã®ãƒªã‚½ãƒ¼ã‚¹ã¯ã€ä»–ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ã‚³ãƒ¼ãƒ‰ã§ç‰¹å®šã§ããªã„よã†ã«ã€encapsulatedã«ãªã‚Šã¾ã™ã€‚ リソースを見ã¤ã‘ã‚‹ã‹ã©ã†ã‹ã¯ã€æ¬¡ã®ã‚ˆã†ã«åˆ¤æ–ã•れã¾ã™:
- リソースåãŒ"
.class"ã§çµ‚ã‚ã‚‹å ´åˆã¯ã€ã‚«ãƒ—セル化ã•れã¾ã›ã‚“。 - 「パッケージåã€ã¯ã€ãƒªã‚½ãƒ¼ã‚¹åã‹ã‚‰å°Žå‡ºã•れã¾ã™ã€‚ パッケージåãŒãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®packageã§ã‚ã‚‹å ´åˆã€ãã®ãƒªã‚½ãƒ¼ã‚¹ã¯ã€ãƒ‘ッケージãŒopenã§ã€å°‘ãªãã¨ã‚‚コール元ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ã—ã‹é…ç½®ã§ãã¾ã›ã‚“。 リソースãŒãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã®ãƒ‘ッケージã«å«ã¾ã‚Œã¦ã„ãªã„å ´åˆã€ãã®ãƒªã‚½ãƒ¼ã‚¹ã¯ã‚«ãƒ—セル化ã•れã¾ã›ã‚“。
å‰è¿°ã®ãƒªã‚½ãƒ¼ã‚¹ã®ã€Œãƒ‘ッケージåã€ã¯ã€åå‰ã®æœ€å¾Œã®
'/'よりå‰ã«ã‚ã‚‹æ–‡å—ã®ã‚µãƒ–シーケンスã‹ã‚‰å°Žå‡ºã•れã€ã‚µãƒ–シーケンス内ã®å„'/'æ–‡å—ã‚’'.'ã«ç½®ãæ›ãˆã¾ã™ã€‚ パッケージåã®å°Žå‡ºæ™‚ã«å…ˆé ã®ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã¯ç„¡è¦–ã•れã¾ã™ã€‚ ãŸã¨ãˆã°ã€"a/b/c/foo.properties"ã¨ã„ã†åå‰ã®ãƒªã‚½ãƒ¼ã‚¹ã«å°Žå‡ºã•れãŸãƒ‘ッケージåã¯"a.b.c"ã§ã™ã€‚ "META-INF"ã¯æœ‰åйãªãƒ‘ッケージåã§ã¯ãªã„ãŸã‚ã€"META-INF/MANIFEST.MF"ã¨ã„ã†åå‰ã®ãƒªã‚½ãƒ¼ã‚¹åã¯ã‚«ãƒ—セル化ã•れã¾ã›ã‚“。ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ãƒªã‚½ãƒ¼ã‚¹ãŒã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«ãªã„ã‹ã€ãƒªã‚½ãƒ¼ã‚¹ãŒã‚«ãƒ—セル化ã•れã¦ã„ã¦ã€å‘¼å‡ºã—å´ãŒè¦‹ã¤ã‘られãªã„å ´åˆã«
nullã‚’è¿”ã—ã¾ã™ã€‚- パラメータ:
name- リソースå- 戻り値:
- リソースã¾ãŸã¯
nullã‚’èªã¿å–ã‚‹ãŸã‚ã®å…¥åŠ›ã‚¹ãƒˆãƒªãƒ¼ãƒ - スãƒãƒ¼:
IOException- 入出力エラーãŒç™ºç”Ÿã—ãŸå ´åˆ- é–¢é€£é …ç›®:
- リソースåãŒ"
-
toString
public String toString()ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æ–‡å—列表ç¾ã‚’è¿”ã—ã¾ã™ã€‚ åå‰ä»˜ãモジュールã®å ´åˆã€è¡¨ç¾ã¯æ–‡å—列"module"ã€ã‚¹ãƒšãƒ¼ã‚¹ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«åã®é †ã«ãªã‚Šã¾ã™ã€‚ åå‰ã®ãªã„モジュールã®å ´åˆã€è¡¨ç¾ã¯æ–‡å—列"unnamed module"ã€ã‚¹ãƒšãƒ¼ã‚¹ã€ãŠã‚ˆã³åå‰ã®ãªã„モジュールをè˜åˆ¥ã™ã‚‹å®Ÿè£…å›ºæœ‰ã®æ–‡å—列ã§ã™ã€‚
-