演習課題「provides with と uses を試してみよう」

現在、/home/ubuntu/java-module/source/jp.paiza.testb/jp/paiza/testb/practice/PRAC.javaに記述されているpracメソッドを/home/ubuntu/java-module/source/jp.co.paiza.testa/jp/co/paiza/testa/Testa.javaから使用しようとしています。
/home/ubuntu/java-module/source/jp.paiza.testb/module-info.javaにおいて、provides with を用いて、jp.paiza.testb.practice.PRACというサービスと、それに対するサービス・プロバイダであるjp.paiza.testb.practice.Practiceaを指定してください
/home/ubuntu/java-module/source/jp.co.paiza.testa/module-info.javaにおいて、サービスであるjp.paiza.testb.practice.PRACを利用する処理を記述してください
Testa.javaにおいて、ServiceLoaderクラスのloadメソッドを使用してPRACインターフェースの実装クラスをロードする処理を記述してください
④ ③に同じくTesta.javaにおいて、拡張forループ により、PRACインターフェースのpracメソッドを利用する処理を記述してください
①〜④までを行い、コンパイルをした後で正しく実行できれば成功です。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。

$ javac -d classes/jp.paiza.testb -p classes source/jp.paiza.testb/module-info.java source/jp.paiza.testb/jp/paiza/testb/*/*.java
$ javac -d classes/jp.co.paiza.testa -p classes source/jp.co.paiza.testa/module-info.java source/jp.co.paiza.testa/jp/co/paiza/*/*.java

また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。
$ java -p classes --module jp.co.paiza.testa/jp.co.paiza.testa.Testa

期待する出力値

Testa
Practicea

演習課題「実装クラスを切り替えてみよう」

用意されているディレクトリをコンパイルした後で、/home/ubuntu/java-module/source/jp.paiza.testb/module-info.javaにおいて、実装クラスをPracticebクラスに変更してください。その後、コンパイルをした後で、正しく実行できれば成功です。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。

$ javac -d classes/jp.paiza.testb -p classes source/jp.paiza.testb/module-info.java source/jp.paiza.testb/jp/paiza/testb/*/*.java
$ javac -d classes/jp.co.paiza.testa -p classes source/jp.co.paiza.testa/module-info.java source/jp.co.paiza.testa/jp/co/paiza/*/*.java

また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。
$ java -p classes --module jp.co.paiza.testa/jp.co.paiza.testa.Testa

期待する出力値

Testa
Practiceb

※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む

#06:provides with と uses

このチャプターでは、モジュール・ディレクティブのprovides with, usesについて学習します。