在包含预定义内部函数结果的方法上返回布尔值

时间:2019-03-07 10:23:16

标签: java android parsing

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也不返回任何东西。我可以覆盖此方法,让它返回布尔值吗?

谢谢!

0 个答案:

没有答案