为什么我在使用 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。一个 Contributor
? List<Contributor>
也许吧?例如
public interface GitHubClient {
@GET("/repos/{owner}/{repo}/contributors")
Call<List<Contributor>> contributors(
@Path("owner") String owner,
@Path("repo") String repo
);
}
我正在尝试按照本教程进行 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。一个 Contributor
? List<Contributor>
也许吧?例如
public interface GitHubClient {
@GET("/repos/{owner}/{repo}/contributors")
Call<List<Contributor>> contributors(
@Path("owner") String owner,
@Path("repo") String repo
);
}