Java_编程机制_7_JDK新特性

JDK 新特性

模块化

  1. 概述:

    • JDK 9 开始,JRE 自己就拆分为了很多个小模块,而不是每次都加载全部的核心类库等。

    • 我们使用模块化的方式是:

      • 每个模块本身相互独立,一个模块中的类直接 import 另一个模块下的包或类是不允许访问的。

      • 每个模块在 src 根目录下放置一个 module-info.java 配置文件,由配置文件中的内容规定各个模块之间的交互信息。

        module 模块名 {
            ...
        }
        
  2. module-info.java 中导出与依赖的语法:

    • 在 module-info.java 中使用 exports 包名; 来表示对外提供的包;
    • 在 module-info.java 中使用 requires 模块名; 来表示需要依赖的模块;
  3. 模块服务的使用:

    • 一方面,服务提供者模块可以在配置文件中指定使用接口的实现类:

      在配置文件中导出接口所在包,并声明使用哪个类作为它的实现类提供服务,如:

      import com.serv.SerItf;
      import com.serv.impl.*;
      
      module MyFront {
          exports com.serv;
          provides SerItf with A;
      }
      
    • 一方面,服务使用者模块面向服务提供者模块的接口编程即可;

      • 在配置文件中声明对该接口所在包的依赖,并声明要使用该接口的服务,如:

        import com.serv.SerItf;
              
        module MyAfter {
            requires MyFront;
            uses SerItf;
        }
        
      • 在代码中的获得接口实现类对象的方式如:

        ServiceLoader.load(要使用的接口.class).iterator().next()
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值