我正在尝试从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) {
}
});
}
我现在做错了什么?
答案 0 :(得分:5)
在带有void
的java方法中,意味着该方法不返回任何内容。
onDataChange
返回类型为void
,您无法返回值count
。
如果需要,请删除return语句并尝试在字段中保存count
答案 1 :(得分:0)
你的onDataChange方法被标记为无效,但你正试图从它返回。删除返回行并将值保存在变量中以供进一步使用。
答案 2 :(得分:0)
正如其他人所写,你无法从void方法类型返回。 但是我认为你因为跟随而在这里感到困惑,你的代码中有两种方法,
OpenHAB version 1.8.1
第一个接受返回类型为整数(即int)。其他人不希望有返回类型。
第二种方法是写入“返回计数”,因此失败。