加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Android Retrofit:缺少方法体,或声明抽象

发布时间:2020-12-15 04:46:07 所属栏目:Java 来源:网络整理
导读:我正在编写一个 Android应用程序,它将使用Retrofit来发出API请求. 我有一个这样的助手类: public class ApiService { public static final String TAG = ApiService.class.getSimpleName(); public static final String BASE_URL = "https://myapiurl.com";
我正在编写一个 Android应用程序,它将使用Retrofit来发出API请求.

我有一个这样的助手类:

public class ApiService {
    public static final String TAG = ApiService.class.getSimpleName();

    public static final String BASE_URL = "https://myapiurl.com";

    public static void testApi(){
        ApiEndpointInterface apiService = prepareService();
        apiService.ping(new Callback<Response>() {
            @Override
            public void success(Response apiResponse,retrofit.client.Response response) {
                Log.e(TAG,apiResponse.toString());

            }

            @Override
            public void failure(RetrofitError error) {
                Log.e("Retrofit:",error.toString());

            }
        });

    }

    private static ApiEndpointInterface prepareService() {
        RestAdapter restAdapter = new RestAdapter.Builder()
                .setEndpoint(BASE_URL)
                .build();
        ApiEndpointInterface apiService =
                restAdapter.create(ApiEndpointInterface.class);

        restAdapter.setLogLevel(RestAdapter.LogLevel.FULL);
        return apiService;
    }

}

我实际的Retrofit实现很简单:

public class ApiEndpointInterface {

    @GET("/v1/myendpoint")
    void ping(Callback<Response> cb);
}

问题是,我无法构建项目,我收到错误:

Error:(12,10) error: missing method body,or declare abstract

参考我的ApiEndpointInterface类.

知道发生了什么事吗?

解决方法

尝试使用公共接口进行API声明.

public interface ApiEndpointInterface {

    @GET("/v1/myendpoint")
    void ping(Callback<Response> cb);
}

此外,在告知构建器将日志级别设置为完全之前,您似乎正在创建ApiEndpointInterface.

private static ApiEndpointInterface prepareService() {

    RestAdapter restAdapter = new RestAdapter.Builder()
            .setEndpoint(BASE_URL)
            .setLogLevel(RestAdapter.LogLevel.FULL);
            .build();

    ApiEndpointInterface apiService =
            restAdapter.create(ApiEndpointInterface.class);

    return apiService;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读