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.