参考官方文章
Direct injection:在调用print之前,inject已经完成了,对象也已经被生成好了,provideInteger()已经被调用过了。
Provider injection: 每次调用Provider.get()都会生成一个新的Integer对象并被计算。
Lazy injection: 在调用Lazy.get()时生成新的Integer对象,并且保存当前对象,下次调用同一个Lazy对象的get()方法会返回之前同样的对象。
Lazy不等同于Singleton,Lazy只在当前Lazy对象保证唯一。
网友评论