看driver源码的时候,重温了下spi。以前虽然看过spi源码,但是忘记了。如今回看,发现有些疑惑。

java spi源码分析

 

 

这里将得到的所有实例的class对象找到后,就是从iterator.next了一下,也就是获取,根本没实例化,很奇怪。

 

于是看了下源码:

1.  Iterator<Driver> driversIterator = loadedDrivers.iterator();

这一步的源码。  里面

lookupIterator是一个LazyIterator,而这个类是ServiceLoader的一个内部类。

java spi源码分析

 

 

2..next方法

java spi源码分析

 

java spi源码分析

 

 红线部分可以看到已经做了实例化。

 

分类:

技术点:

相关文章:

相关资源