如何独立制作这个方法?

How to make this method independently?

private static ArrayList mMyArray;

public void patchUsersExceptCurrentUser(String name) {
    ParseQuery<ParseUser> query = ParseUser.getQuery();

    query.whereNotEqualTo("username", name);
    query.findInBackground(new FindCallback<ParseUser>() {
        @Override
        public void done(List<ParseUser> objects, ParseException e) {
            if (e == null) {

                for (ParseUser user : objects) {
                    mMyArray.add(user.getUsername());
                }
            }
        }
    });
}

我想使用非静态的私有 ArrayList mMyArray

听说匿名内部只能访问final变量class

那我不能独立使用这个方法吗?

  public void patchUsersExceptCurrentUser(String name,ParseListener listener) {
        ParseQuery<ParseUser> query = ParseUser.getQuery();
        query.whereNotEqualTo("username", name);
        query.findInBackground(new FindCallback<ParseUser>() {
            @Override
            public void done(List<ParseUser> objects, ParseException e) {
                if (e == null) {
                    listener.onSucess(objects);
                }
                else{
                    listener.onError(e);
                }
            }
        });
    }

    public interface ParseListener{
        void onSucess(List<Object>objects);
        void onError(ParseException e);
    }

然后就可以到处调用这个函数了,像这样:

patchUsersExceptCurrentUser("Example", new ParseListener() {
    @Override
    public void onSucess((List<Object>objects) {
        myArray = objects;
    }

    @Override
    public void onError(ParseException e) {
        //show error
    }
});