看driver源码的时候,重温了下spi。以前虽然看过spi源码,但是忘记了。如今回看,发现有些疑惑。
这里将得到的所有实例的class对象找到后,就是从iterator.next了一下,也就是获取,根本没实例化,很奇怪。
于是看了下源码:
1. Iterator<Driver> driversIterator = loadedDrivers.iterator();
这一步的源码。 里面
lookupIterator是一个LazyIterator,而这个类是ServiceLoader的一个内部类。
2..next方法
红线部分可以看到已经做了实例化。