无法从具有void结果类型的方法返回值

时间:2016-03-22 19:54:11

标签: java android firebase

我正在尝试从Firebase数据库中获取特定值,之前我已经这样做了,但是现在当我尝试一些不同的东西时,它说“无法从具有void结果类型的方法返回值”。< / p>

我猜我错过了一些编程规则,因为我是一名新的Java程序员。

这是我的代码:

char[]

错误出现在我试图返回计数的地方。

读完评论后,这是我的代码,现在该方法不影响声明的变量计数,它保持0:

public int getVotesForEvent(final String event_title) {
    firebaseRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.child("Votes").exists()) {

                for (DataSnapshot event : dataSnapshot.child("Votes").getChildren()) {
                    String event_title2 = event.getKey();
                    if (event_title2.equals(event_title)) {
                        int count=Integer.parseInt(event.getValue().toString());
                        return count;

                    }


                }

            }
            else {
                int count = 0 ;
                return count;
            }
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });
}

我现在做错了什么?

3 个答案:

答案 0 :(得分:5)

在带有void的java方法中,意味着该方法不返回任何内容。

onDataChange返回类型为void,您无法返回值count

如果需要,请删除return语句并尝试在字段中保存count

答案 1 :(得分:0)

你的onDataChange方法被标记为无效,但你正试图从它返回。删除返回行并将值保存在变量中以供进一步使用。

答案 2 :(得分:0)

正如其他人所写,你无法从void方法类型返回。 但是我认为你因为跟随而在这里感到困惑,你的代码中有两种方法,

OpenHAB version 1.8.1

第一个接受返回类型为整数(即​​int)。其他人不希望有返回类型。

第二种方法是写入“返回计数”,因此失败。