首页 > 编程语言 > 详细

java.util.ServiceLoader的用法

时间:2015-11-03 10:41:08      阅读:360      评论:0      收藏:0      [点我收藏+]

在很多开源组件里经常会看到java.util.ServiceLoader的使用,这里给大家介绍下怎么通过ServiceLoader找到一个接口的所有实现类。

我们新建一个接口Hello

public interface Hello {
String say();
}

然后创建一个实现类DefaultHello

public class DefaultHello implements Hello {

    @Override
    public String say() {
        return "Default Hello";
    }
}

然后在META-INF/services目录下创建一个文件,文件名是接口全称,这里是com.proxy.Hello
内容是具体实现类的全限定名com.proxy.DefaultHello
再执行如下代码

public class ServiceLoaderDemo {

    public static void main(String[] args) {

        Hello obj = ServiceLoader.load(Hello.class).iterator().next();

        System.out.println(obj.say());

    }
}

就可以得到结果
Default Hello
说明ServiceLoader.load这个方法返回了DefaultHello对象,在文件里我们也可以写多个实现类,一行一个,相应用iterator遍历。

java.util.ServiceLoader的用法

原文:http://www.cnblogs.com/developerY/p/4932232.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!