我正在使用java.util.ServiceLoader创建一个轻量级插件框架。
我目前正在努力解决如何让多个实现类具有相同的 FQN。我想在类路径上有两个相同插件的副本,并且可以访问 META-INF/services 目录中给出的两个实现类。
这里有一些简单的 Eclipse 项目来说明我的意思: https ://docs.google.com/open?id=0B4MxFm-ACB3IUmswN0dpMExTVms
ServiceLoaderIntf 具有由插件实现的简单接口。ProjectOne 和 ProjectTwo 代表插件。ServiceLoader 有 Tester 类,它遍历实现者并调用它们的 init() 方法。
即使实现类具有相同的 FQN,我如何才能让它识别所有实现者?现在它只识别 ProjectOne 中的插件类。