6

我正在尝试按照本教程进行 Retrofit2 Getting Started and Create an Android Client

进口没问题

compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'

我可以按照教程很好,除了一件事。我正在尝试创建GitHubService Interface,但遇到了两个问题:Call<V>说它不接受任何类型参数,而且我也不确定将Contributor类放在哪里,因为它根据教程仅声明为static,这是否意味着它嵌套在某个地方?

import okhttp3.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;

public interface GitHubClient {
    @GET("/repos/{owner}/{repo}/contributors")
    Call<List<Contributor>> contributors(
        @Path("owner") String owner,
        @Path("repo") String repo
    );
}

static class Contributor {
    String login;
    int contributions;
}

我将 Contributor 类放在一个单独的文件中,并将其公开。此外,Call 类不会在 Android Studio 中自动导入,我必须手动选择它,但这是我得到的唯一 Call(Android 手机 api 除外)

请帮助我了解为什么会出现此错误,据我所知,周围没有人有相同的东西,所以我缺少一些基本的东西。

4

1 回答 1

16

根据您得到的编译时错误,您确实Call从错误的包中导入。请检查您的导入并确保您有

import retrofit2.Call;

所有与改造相关的导入都应该来自包retrofit2

另一方面

 Call contributors(

它无法猜测您要返回什么。一个Contributor?一个List<Contributor>也许?例如

public interface GitHubClient {
    @GET("/repos/{owner}/{repo}/contributors")
    Call<List<Contributor>> contributors(
        @Path("owner") String owner,
        @Path("repo") String repo
    );
}
于 2016-02-03T12:07:36.247 回答