静态方法的复制参数

时间:2018-07-14 00:34:52

标签: java android static-methods

我有两个类,首先是使用以下方法的ViewDatabase.java:

public void collectUserInfo(final ArrayList<String> ids){
    databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            ArrayList<User> friends = new ArrayList<>();
            //Add Some Users to friends...
            ListOfFriendsFragment.showFacebookFriendUI(friends);
        }
    });
}

ListOfFriendsFragment调用此方法。这是showFacebookFriendUI方法:

public static void showFacebookFriendUI(ArrayList<User> friendsList){
    if(friendsList.size()>0){
        friends=friendsList; //This is wrong
    }else
        Log.e("ERROR", "No friends");
}

问题是由于静态方法,我无法在片段中使用ArrayList。我也无法在方法中执行代码,因为我需要访问某些属性。 因此,我只需要获取ArrayList的副本并在类中使用它即可。

**我不能只返回ArrayList,因为getFriends是异步的,所以我需要在完成时调用showFacebookFriendUI。

0 个答案:

没有答案