ParseUser.getCurrentUser.getList("isFollowing").add(users.get(p)) 和 ParseUser.getCurrentUser.add("isFollowing", users.get(p)) 之间的区别

Difference between ParseUser.getCurrentUser.getList("isFollowing").add(users.get(p)) and ParseUser.getCurrentUser.add("isFollowing", users.get(p))

我正在制作一个类似 Twitter 的简单应用程序,用户可以在其中关注或 post。

我正在为此使用解析 android。

在用户 table 中,我创建了一个名为“isFollowing”的列,它表示关注者的姓名。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                CheckedTextView checkedTextView=(CheckedTextView)view;
                if (checkedTextView.isChecked()){
                    ParseUser.getCurrentUser().getList("isFollowing").add(users.get(position));
                }else {
                    ParseUser.getCurrentUser().getList("isFollowing").remove(users.get(position));
                }
                ParseUser.getCurrentUser().saveInBackground();
            }
        });

users arrayList 包含存在的用户数。如果我们单击列表视图,那么用户名将被添加到解析数据库中的 isFollowing 数组中。

我正在使用 ParseUser.getCurrentUser().getList("isFollowing").add(users.get(position)); 将用户名添加到我的数组,这给了我一个空指针异常。

但是如果我使用 ParseUser.getCurrentUser.add("isFollowing", users.get(position)),它就会正确执行。

为什么会这样?

可能在第一时间您的列表未初始化,因此 getList("isFollowing") return 为空。在为该字段创建此用户时,您是否设置了一个空的 [] 数组?

此外,如果您预计此数组会随着时间的推移而增长,并且在某些情况下会超过 20 个项目,那么您以后可能会遇到性能问题。我会使用关系或指针字段来存储这种数据。