MENU

【Java Silver】モジュール型プロジェクトのコンパイルと実行

Javaのモジュールシステムに関する問題です。

目次

問題

次のモジュール型プロジェクトに関する設定が正しい場合、正常にコンパイルし実行も可能なコードを選んでください。

module com.example.app {
    requires java.logging;
    exports com.example.app.service;
}
package com.example.app.service;

import java.util.logging.Logger;

public class MainService {
    private static final Logger logger = Logger.getLogger(MainService.class.getName());

    public static void main(String[] args) {
        logger.info("Service is running.");
    }
}

選択肢

  • A. 正常にコンパイルし実行できる
  • B. コンパイルエラーが発生する
  • C. 実行時エラーが発生する
  • D. 実行もできるが警告が表示される

答えと解説

回答を見る

答え

A. 正常にコンパイルし実行できる

解説

解説のポイント:

  • モジュール宣言の基本
  • requires と exports
  • Logger の使用法
  • つまづきやすい点

基本説明

Javaモジュールシステムは、Java 9で導入された機能で、コードの再利用性を高めることを目的としています。

モジュールの宣言には、「requires」と「exports」の概念が含まれ、他のモジュールがどのモジュールやパッケージに依存しているかを定義します。

誤答理由

この問題は、モジュールの設定が正しく、パッケージのエクスポートが正しく配置されているため、誤答する要素が意図的に排除されています。

適切な「requires」と「exports」の使用についての理解が問われます。

つまずきポイント

初心者は「requires」や「exports」が何をするのかよくわからないことがあります。

それぞれがモジュール同士の依存関係を明示的に示す方法となり、他のモジュールにこのモジュールのどの部分を見せるか選べます。

発展知識

モジュールシステムの導入により、大規模アプリケーションのメンテナンスが容易になり、セキュリティ管理が強化されます。

モジュールシステムは、パッケージの公開範囲を制御することで、より安全で最適化されたコードの組織を可能にします。

目次