【问题标题】:Error: anonymous class is not abstract and does not override abstract method错误:匿名类不是抽象的,不会覆盖抽象方法
【发布时间】:2016-04-05 07:41:42
【问题描述】:

拜托,每当我尝试构建我的 android 项目时,下面的方法都会出错。

方法:

query.findInBackground(new FindCallback() {
            @Override
            public void done(List<ParseObject> objects, ParseException e) {
                mProgressBar.setVisibility(View.INVISIBLE);

                if (e == null) {
                    objects = removeCurrentUser(objects);
                    mUsers = objects.toArray(new ParseObject[0]);

                    // Get user relations
                    ParseRelation userRelations = ParseUser.getCurrentUser().getRelation("UserRelation");
                    userRelations.getQuery().findInBackground(new FindCallback() {
                        @Override
                        public void done(List<ParseObject> results, ParseException e) {
                            if (e == null) {
                                UsersAdapter adapter = new UsersAdapter(SelectUsersActivity.this, mUsers, new ArrayList<ParseObject>(results));
                                setListAdapter(adapter);
                            }
                            else {
                                Log.e(TAG, "Exception caught!", e);
                            }
                        }
                    });
                }
                else {
                    // Something went wrong.
                    Toast.makeText(SelectUsersActivity.this, "Sorry, there was an error getting users!", Toast.LENGTH_LONG).show();
                }
            }
        }//
         );

错误:

错误:(46, 45) 错误:不是抽象的,也不是 覆盖 FindCallback 中的抽象方法 done(List,ParseException)

错误:(48, 16) 错误:名称冲突: done(List,ParseException) 在和 FindCallback 中的 done(List,ParseException) 具有相同的擦除, 但两者都没有覆盖另一个,其中 T 是一个类型变量:T 扩展 接口 FindCallback 中声明的 ParseObject

这里是Screenshot

【问题讨论】:

  • 是你的 done 方法被声明为抽象。

标签: java android android-activity android-studio listactivity


【解决方案1】:

您尚未参数化您的匿名 FindCallback 子类,因此您的 done 签名与 FindCallback#done 签名不匹配,因为未参数化版本中的 done 签名是 done(List&lt;Object&gt;results, ParseException e)

要修复它,请将其参数化:

userRelations.getQuery().findInBackground(new FindCallback<ParseObject>() {
// Add ---------------------------------------------------^^^^^^^^^^^^^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    相关资源
    最近更新 更多