我正在浏览一个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的代码,我如何 正确修复 此警告?
答案 0 :(得分:3)
您只需输入您的ParseQuery:
将ParseQuery query
替换为ParseQuery<ParseObject> query