Android Studio 中的错误 - 无法从静态上下文中引用非静态方法
Error in Android Studio - Non-static method cannot be referended from static context
我在 android 上创建了一个简单的应用程序,它是一个搜索引擎电影。它使用 GSON + Retrofit。
在classFilmApiRequester
有错误。
Api.getFilmInfo (apikey, filmTitle, pageLimit, callback);
Non-static method 'getFilmInfo (java.lang.String, java.lang.String,
java.lang.String, retrofit.Callback )' can not
be referenced from a static context.
不知道怎么解决这个问题
FilmApiRequester.class
public class FilmApiRequeter {
private static String ROOT ="http://example.com";
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(ROOT)
.build();
Api filmRequester = restAdapter.create(Api.class);
private String apikey="ApiKeyExample";
public void getFilms(String filmTitle,String pageLimit, Callback<Film> callback)
{
Api.getFilmInfo(apikey,filmTitle,pageLimit,callback);
} }
Api.class
public interface Api{
@GET("/movies.json")
public void getFilmInfo(@Query("apikey") String apikey, @Query("q") String filmTitle, @Query("page_limit") String pageLimit, Callback<Film> callback); }
您的问题在这里:
public void getFilms(String filmTitle,String pageLimit, Callback<Film> callback)
{
Api.getFilmInfo(apikey,filmTitle,pageLimit,callback); /// this line
}
您已将方法创建为:
public interface Api{
@GET("/movies.json")
public void getFilmInfo
因为你的方法 getFilmInfo
是非静态的,你不能在没有实例的情况下调用它。因此,要么使其成为 static
,要么创建一个 class 的实例来实现您的接口 Api
.
我在 android 上创建了一个简单的应用程序,它是一个搜索引擎电影。它使用 GSON + Retrofit。
在classFilmApiRequester
有错误。
Api.getFilmInfo (apikey, filmTitle, pageLimit, callback);
Non-static method 'getFilmInfo (java.lang.String, java.lang.String, java.lang.String, retrofit.Callback )' can not be referenced from a static context.
不知道怎么解决这个问题
FilmApiRequester.class
public class FilmApiRequeter {
private static String ROOT ="http://example.com";
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(ROOT)
.build();
Api filmRequester = restAdapter.create(Api.class);
private String apikey="ApiKeyExample";
public void getFilms(String filmTitle,String pageLimit, Callback<Film> callback)
{
Api.getFilmInfo(apikey,filmTitle,pageLimit,callback);
} }
Api.class
public interface Api{
@GET("/movies.json")
public void getFilmInfo(@Query("apikey") String apikey, @Query("q") String filmTitle, @Query("page_limit") String pageLimit, Callback<Film> callback); }
您的问题在这里:
public void getFilms(String filmTitle,String pageLimit, Callback<Film> callback)
{
Api.getFilmInfo(apikey,filmTitle,pageLimit,callback); /// this line
}
您已将方法创建为:
public interface Api{
@GET("/movies.json")
public void getFilmInfo
因为你的方法 getFilmInfo
是非静态的,你不能在没有实例的情况下调用它。因此,要么使其成为 static
,要么创建一个 class 的实例来实现您的接口 Api
.