java类没有注册_为什么我的Java 9模块服务没有注册它的实现?

我通过阅读这本书学习Java 9模块

Modular Programming in Java 9

“。在第7章“服务简介”第201页中,我按照书中的步骤使用服务创建了一个简单的项目。我将发布下面的代码,或者您可以访问项目

github

.

服务

课程名称:packt.sortutil

类名:packt.util.sortutil

public interface SortUtil {

List sortList(List list);

}

2。提供者

类名:packt.util.impl.BubbleSort.BubbleSortUtilimpl:

代码:

package packt.util.impl.bubblesort;

public class BubbleSortUtilImpl implements SortUtil

...

模块-info.java

module packt.sort.bubblesort {

requires packt.sortutil;

provides packt.util.SortUtil with packt.util.impl.bubblesort.BubbleSortUtilImpl;

}

还有

packt.util.impl.javasort.JavaSortUtilImpl

唯一不同的是不同的实现。

消费者

模块-info.java:

module packt.addressbook {

requires packt.sortutil;

uses packt.util.SortUtil;

}

代码:

Iterable sortUtils = ServiceLoader.load(SortUtil.class);

for (SortUtil sortUtil : sortUtils){

System.out.println("Found an instance of SortUtil");

sortUtil.sortList(contacts);

}

当我管理消费者时

应该是

:

dd3a16adb3ca059b3fdb0655d980f101.png

请注意突出显示的区域,其中有两个实现。而且,名字是按姓氏排序的。

但是

对于我的节目,

它是:

2æ 03, 2019 12:12:55 ä¸å packt.addressbook.Main main

INFO: Address book viewer application: Started

2æ 03, 2019 12:12:56 ä¸å packt.addressbook.Main main

INFO: Address book viewer application: Completed

[Edsger Dijkstra, Raid Black]

注意这里

没有“找到sortutil的实例”

名字也没有排序。所以看起来好像没有在服务中注册的实现。

哪里出错了?谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值