1. 程式人生 > >Java9模組化簡明例子

Java9模組化簡明例子

個人對Java9的模組化的理解

個人對Java9模組化的簡單理解是:模組是 package 的容器,是 package 的上一層。在模組裡,可以輸出(管理)當前模組哪些包是對外暴露(exports)的。同樣的,當前模組需要別的模組,就要引用(requires)進來。

Java9模組化的例子

使用Idea建立一個專案 java-9-module-demo,新增兩個模組: - module-main:主模組 - module-user:使用者模組

這個例子將演示模組化的作用和寫法,實現了以下功能: - 主模組需要使用者模組中的 User 類。 - 使用者模組暴露(輸出)了 User

類所在的包,因此主模組可以使用(可以成功 requires)。 - 主模組無法訪問使用者模組中的 HiddenClass 類,因為使用者模組沒有輸出(exports)這個類所在的包。

專案結構如下圖所示:

java-9-module-demo

主類

package main;

import user.User;

/**
 * 主類
 *
 * @author Zebe
 */
public class Main {

    /**
     * 執行入口
     *
     * @param args 執行引數
     */
    public static void main(String[] args) {
        // 呼叫 module-user 模組中的 User 類
User user = new User(); user.sayHello(); } }

使用者類

package user;

/**
 * 使用者類
 *
 * @author Zebe
 */
public class User {

    /**
     * 打招呼
     */
    public void sayHello() {
        System.out.println("hello, 我是 module-user 模組 user 包裡面的 User 類!");
    }

}

隱藏類

package
invisible; /** * 隱藏類 * * @author Zebe */ public class HiddenClass { public void test() { System.out.println("Test"); } }

主模組資訊定義

/**
 * module-main 主模組資訊定義
 * @author Zebe
 */
module module.main {
    // 需要 module-user 模組
    requires module.user;

}

使用者模組資訊定義

/**
 * module-user 使用者模組資訊定義
 * @author Zebe
 */
module module.user {
    // 輸出(對外暴露)整個 user 包
    exports user;
    //exports invisible;
}

小結

眼過千遍,不如手過一遍。對於程式設計的學習,在於積累和不斷的練習。