看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源码分析

 

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

 

相关文章:

  • 2021-04-19
  • 2022-02-02
  • 2021-12-31
  • 2021-05-17
  • 2021-07-26
  • 2021-07-01
  • 2022-01-23
  • 2021-10-22
猜你喜欢
  • 2021-09-25
  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
  • 2021-06-30
  • 2022-02-05
  • 2022-12-23
相关资源
相似解决方案