为什么我在使用 Retrofit2 时得到 "Type okhttp3.Call does not have type parameters"?

Why do I get "Type okhttp3.Call does not have type parameters" when using Retrofit2?

我正在尝试按照本教程进行 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 class 因为根据教程只声明为 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;
}

我将贡献者 class 放在一个单独的文件中,并将其命名为 public。 此外,Call class 不会在 Android Studio 中自动导入,我必须手动 select 它,但这是我收到的唯一 Call(Androids phone api)

请帮助我解决为什么会出现此错误,据我所知,周围没有人遇到同样的事情,所以我遗漏了一些基本的东西。

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

import retrofit2.Call;

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

另一方面

 Call contributors(

它猜不出你想要什么return。一个 ContributorList<Contributor> 也许吧?例如

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