是否可以从嵌套的void Override方法存储变量并返回它?

时间:2015-06-25 21:13:42

标签: java asynchronous return firebase

我定义了全局变量名String str[]。在此方法中有一个方法名称getMessageArray,其类型为String[],库(jar)文件中还有另一个覆盖void方法。我的目的是从getMessageArray返回以覆盖方法填充的String数组,但是当我调试时,我得到null代码。在技​​术上是否有任何方法来解决这个问题? 我需要这个用于使用firebase的目的。

public String[] getMessageArray(){
        Firebase ref = new Firebase(firebaseUrl);
        ref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                long strLength;
                strLength = dataSnapshot.getChildrenCount();
                str = new String[(int) strLength];
                int i = 0;
                for (DataSnapshot iterator : dataSnapshot.getChildren()) {
                 str[i]=iterator.child("message").getValue().toString();
                    i++;
                }
                }
            @Override
            public void onCancelled(FirebaseError firebaseError) {
                System.out.println("The read failed: " + firebaseError.getMessage());
            }
        });
       return str;
}

我的问题是如何存储已填充的数据,并将其作为带有值的数组返回上面的示例

0 个答案:

没有答案