我有以下单身人士
public class APIShared {
public String API_BASE_URL = "http://url.com/";
public static APIShared instance;
public APIManager client;
private Context context;
private Retrofit retrofit;
private APIShared (Context context) {
this.context = context;
retrofit = new Retrofit.Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
client = retrofit.create(APIManager.class);
}
public static APIShared init(Context context){
if (null == instance){
instance = new APIShared(context);
}
return instance;
}
}
在我的MainActivity
内onCreate
我打电话
Call<List<Category>> call = APIShared.instance.client.categories();
当我启动应用程序时,我得到了
java.lang.NullPointerException:尝试从空对象引用上的字段'com.example.me.fooder.APIManager com.example.me.fooder.APIShared.client'中读取
我做错了什么?
答案 0 :(得分:1)
你搞砸了单身人士模式。实例应该是私有静态的。 init()通常命名为getInstance(尽管不需要),并且是访问实例的唯一方法。您的电话将如下所示:APIShared.init()。client.categories();