如何使用Parse.com API修复“未经检查的对findInBackground的调用”

时间:2015-07-24 13:45:14

标签: android parse-platform unchecked

我正在浏览一个Android应用程序,我已从iOS移植并尝试找出我收到的任何警告的原因并使我的代码与Android Studio的lint保持一致。

到目前为止,大多数“问题”都是非常简单的修复,但我收到了一个警告,其中包含一个让我难以理解的特定Parse.com API函数。

以下是代码:

private void loadData() {
    ParseQuery query = ParseQuery.getQuery("someClass");
    query.include("someProperty1");
    query.include("someProperty2");
    query.include("someProperty3");
    query.orderByAscending("sequence");
    query.whereEqualTo("owner", ParseUser.getCurrentUser());

    // This next line causes the warning
    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> items, ParseException e) {
            if (e != null) {
                // Error handling here

            } else {
                // Got query results here

            }
        }
    });
}

出现的警告是:

  

未选中调用'findInBackground(FindCallback&lt; T&gt;)'作为原始类型'com.parse.ParseQuery'的成员。

当您允许自动填充功能为您“填写”new FindCallback时,您就会明白这一点:

query.findInBackground(new FindCallback() {
    @Override
    public void done(List list, ParseException e) {

    }

    @Override
    public void done(Object o, Throwable throwable) {

    }
});

嗯,这很烦人,因为返回的实际结果是List类型ParseObject。所以,我将代码编辑到上面的代码中,以简化我的代码。有趣的是,即使自动完成代码也有与之相关的相同警告。

我想我理解这个警告已经生成了,但是我尽力指出我的类型。我可以做些什么来使我的代码工作?或者更确切地说,鉴于我无法重写Parse的代码,我如何 正确修复 此警告?

1 个答案:

答案 0 :(得分:3)

您只需输入您的ParseQuery:

ParseQuery query替换为ParseQuery<ParseObject> query