Java 在应用程序类中使用静态接口安全吗?

Java 在应用程序类中使用静态接口安全吗?,java,android,interface,static,Java,Android,Interface,Static,使用这些类有问题吗? 这个静态接口以后是否会使应用程序类出现问题 public class App extends Application { private static KareezAPI apiService; private InternetConnectionListener mInternetConnectionListener; public static final int DISK_CACHE_SIZE = 10 * 1024 * 1024; // 10 MB public v

使用这些类有问题吗? 这个静态接口以后是否会使应用程序类出现问题

public class App extends Application {
private static KareezAPI apiService;
private InternetConnectionListener mInternetConnectionListener;
public static final int DISK_CACHE_SIZE = 10 * 1024 * 1024; // 10 MB
public void setInternetConnectionListener(InternetConnectionListener listener) {
    mInternetConnectionListener = listener;
}

public void removeInternetConnectionListener() {
    mInternetConnectionListener = null;
}

public KareezAPI getApiService(Activity activity) {
    if (apiService == null) {
        apiService = provideRetrofit(KareezAPI.BASE_URL,activity).create(KareezAPI.class);
        }
    return apiService;
}
                                   }
这是接口:

public interface KareezAPI{
String BASE_URL="https://baseurl.heroapp.com/";
@POST("register")
Call<RegisterResponse> RegisterUser( @Body RegisterData registerData);

@POST("login")
Call<RegisterResponse> LoginUser(@Body LoginData loginData); public interface LoginUserCallback{
    public void onResponse(Call<RegisterResponse> call, Response<RegisterResponse> response);
    public void onFailure(Call<RegisterResponse> call, Throwable t);
}


}
公共接口API{
字符串BASE_URL=”https://baseurl.heroapp.com/";
@邮政(“登记册”)
调用RegisterUser(@Body RegisterData RegisterData);
@发布(“登录”)
调用LoginUser(@Body LoginData LoginData);公共接口LoginUserCallback{
公共void onResponse(调用调用、响应响应);
失败时公共无效(呼叫呼叫、可丢弃t);
}
}
这就是这个接口和应用程序类的使用

((App) activity.getApplication()).getApiService(activity).LoginUser(loginData).enqueue(new 
                                               Callback<RegisterResponse>() {
        @Override
        public void onResponse(@NonNull Call<RegisterResponse> call, @NonNull 
             Response<RegisterResponse> response) {
            loginUserCallback.onResponse(call, response);
        }

        @Override
        public void onFailure(@NonNull Call<RegisterResponse> call, Throwable t) {
            loginUserCallback.onFailure(call, t);
        }
    });
((App)activity.getApplication()).getApiService(activity).LoginUser(loginData).enqueue(新建)
回调函数(){
@凌驾
公共void onResponse(@NonNull调用,@NonNull调用
回应(回应){
onResponse(调用,响应);
}
@凌驾
public void onFailure(@NonNull Call,Throwable t){
loginUserCallback.onFailure(call,t);
}
});

对我来说,将Api逻辑添加到应用程序类是没有意义的。您可以在
KareezAPI
界面中使用改装,并编写如下代码:

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

KareezAPI service = retrofit.create(KareezAPI.class);
然后,当你想使用它时,写下它

KareezAPI.service.LoginUser().enqueue()...
你喜欢去哪里就去哪里