Java 类不是抽象的,并且不会重写ParseCallback2中完成的抽象方法(Object,Throwable)

Java 类不是抽象的,并且不会重写ParseCallback2中完成的抽象方法(Object,Throwable),java,android,parse-platform,android-recyclerview,Java,Android,Parse Platform,Android Recyclerview,我正在尝试在我的RecyclerAdapter类中执行ParseQuery: // Differentiate between feedItem views and nativeAds @Override public int getViewType(int position) { ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("NativeAd");

我正在尝试在我的RecyclerAdapter类中执行ParseQuery:

// Differentiate between feedItem views and nativeAds
    @Override
    public int getViewType(int position) {
        ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("NativeAd");
        query.whereEqualTo("objectId", "fYBeufqdOt");
        final int[] n =  new int[1];
        query.getFirstInBackground(new GetCallback() {
            @Override
            public void done(ParseObject object, ParseException e) {
                n[0] = Integer.valueOf(String.valueOf(object));
            }
        });

        int viewType = VIEW_TYPE_MARKET_FEED;
        if ((position % n[0] == 0) && position > 0) {
            viewType = VIEW_TYPE_AD;
        }
        return viewType;
    }
Error:(75, 54) error: <anonymous com.elgami.market.MarketFeedRecyclerAdapter$1> is not abstract and does not override abstract method done(Object,Throwable) in ParseCallback2
//区分feedItem视图和NativeAD
@凌驾
公共int getViewType(int位置){
ParseQuery查询=新的ParseQuery(“NativeAd”);
查询:whereEqualTo(“objectId”、“fYBeufqdOt”);
最终整数[]n=新整数[1];
getFirstInBackground(新的GetCallback(){
@凌驾
公共无效完成(ParseObject对象,parsee异常){
n[0]=整数.valueOf(字符串.valueOf(对象));
}
});
int viewType=视图\类型\市场\提要;
如果((位置%n[0]==0)和位置>0(&P){
视图类型=视图类型广告;
}
返回视图类型;
}
我在RecyclerAdapter类中遇到以下错误:

// Differentiate between feedItem views and nativeAds
    @Override
    public int getViewType(int position) {
        ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("NativeAd");
        query.whereEqualTo("objectId", "fYBeufqdOt");
        final int[] n =  new int[1];
        query.getFirstInBackground(new GetCallback() {
            @Override
            public void done(ParseObject object, ParseException e) {
                n[0] = Integer.valueOf(String.valueOf(object));
            }
        });

        int viewType = VIEW_TYPE_MARKET_FEED;
        if ((position % n[0] == 0) && position > 0) {
            viewType = VIEW_TYPE_AD;
        }
        return viewType;
    }
Error:(75, 54) error: <anonymous com.elgami.market.MarketFeedRecyclerAdapter$1> is not abstract and does not override abstract method done(Object,Throwable) in ParseCallback2
Error:(75,54)Error:不是抽象的,并且不重写ParseCallback2中完成的抽象方法(Object,Throwable)

发生了什么事?我应该在别处执行查询吗?如果是,在哪里以及如何?

我认为您需要指定类GetCallback的泛型类型

  @Override
  public int getViewType(int position) {
    ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("NativeAd");
    query.whereEqualTo("objectId", "fYBeufqdOt");
    final int[] n =  new int[1];
    query.getFirstInBackground(new GetCallback<ParseObject>() {
        @Override
        public void done(ParseObject object, ParseException e) {
            n[0] = Integer.valueOf(String.valueOf(object));
        }
    });

    int viewType = VIEW_TYPE_MARKET_FEED;
    if ((position % n[0] == 0) && position > 0) {
        viewType = VIEW_TYPE_AD;
    }
    return viewType;
}

在平面英语中,您需要在ParseCallback2类中实现方法done(Object,Throwable)。我没有ParseCallback2类。除了
java.lang.arithmetricException:divide by zero
之外,它似乎可以工作。奇怪的是,n[0]应该等于25。您能否更具体地说明此异常(代码、错误消息)是否公平。不管怎样,我都很感激你的调查。我想我必须做更多的研究才能更有效地进行这项工作。如果你找到一个更好的为什么要这样做,请随意分享