Meh*_*kri 2 java static initialization
我有一个名为UrlControllerThe class的类,如:
public class UrlController {
private static final String BASE_URL = "http://api.site.mil/";
private static Retrofit retrofit;
private UrlController() {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
public static Retrofit getRetrofit() {
return retrofit;
}
}
Run Code Online (Sandbox Code Playgroud)
我应该检查if(retrofit==null)的getRetrofit()方法,或者它始终没有空?
Ell*_*sch 10
没有什么可以构造UrlController(UrlController因为你的构造函数是private)所以retrofit保证是这样null.我想你想要一个static初始化器.就像是,
static {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
Run Code Online (Sandbox Code Playgroud)
由于该方法getRetrofit是static,因此它可以被称为,即使当还没有被创建的类的对象.
因此,您必须检查它.
但即使您不检查,该方法也会返回null.因此,您必须在调用此方法的位置检查null.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |