public Boolean check(String username) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("User");
query.whereEqualTo("username", username);
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e == null && objects.size() > 0) {
return true;
}
}
});
return false;
}
嗨!
我基本上是在尝试检查数据库中是否存在用户名。
我遇到的问题是第11行,其中return true
不起作用,因为它在“块”内(我不知道合适的用语...)
是否有一种方法可以使'check'方法返回布尔值,就像FindCallBack是否成功一样?
我还检查了findInBackground是否可以返回任何内容,并跳入了它的声明。
public void findInBackground(final FindCallback<T> callback) {
final State<T> state = builder.build();
final Task<List<T>> task;
if (state.cachePolicy() != CachePolicy.CACHE_THEN_NETWORK ||
state.isFromLocalDatastore()) {
task = findAsync(state);
} else {
task = doCacheThenNetwork(state, callback, new CacheThenNetworkCallable<T, Task<List<T>>>() {
@Override
public Task<List<T>> call(State<T> state, ParseUser user, Task<Void> cancellationToken) {
return findAsync(state, user, cancellationToken);
}
});
}
ParseTaskUtils.callbackOnMainThreadAsync(task, callback);
}
看起来像findInBackground也不返回任何东西。我可以覆盖此方法,让它返回布尔值吗?
谢谢!