我不确定这个问题是否有用,但Google Guice是否有任何最佳实践和反模式?
请将任何通用DI模式指向此问题.
众所周知,在Java中,需要在使用之前初始化局部变量(参见JLS)
局部变量(§14.4,§14.14)必须在使用之前通过初始化(第14.4节)或赋值(第15.26节)以可以使用明确赋值规则验证的方式显式赋予值(§14.4,§14.14) 16).
否则会收到编译器错误:
The local variable result may not have been initialized.
Run Code Online (Sandbox Code Playgroud)
这个设计决定的理由是什么?为什么编译器没有申报(如自动转换int x,double y,String foo等)一些默认值初始化的定义(0,0.0,NULL)?这样做有什么缺点吗?