android-不能在匿名类的地图中写

时间:2018-04-20 17:27:43

标签: java android firebase-realtime-database

我正在使用一个接口来从数据库中读取一个值,在Map中,我想在匿名类中将另一个Map的一些信息放入,但我不能写在Map中,如何在Map中写入并且可以在不必实现所有方法的情况下声明地图?

public void addFriend(String UserId, final String email)
    {
        mDatabase = FirebaseDatabase.getInstance().getReference("User");
        DatabaseReference user = mDatabase.child(UserId);
        final DatabaseReference friendlist = user.child("contact");
        checkUser(email, new ICheckUserListener() {
        @Override
        public void onSuccess(final Map value) {
            friendlist.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    Map<String, String> map = (Map) dataSnapshot.getValue();

                    if(map==null&&value!=null)
                    {
                        map= new Map<String, String>() {
                            @Override
                            public int size() {
                                return 0;
                            }

                            @Override
                            public boolean isEmpty() {
                                return false;
                            }

                            @Override
                            public boolean containsKey(Object key) {
                                return false;
                            }

                            @Override
                            public boolean containsValue(Object value) {
                                return false;
                            }

                            @Override
                            public String get(Object key) {
                                return null;
                            }

                            @Override
                            public String put(String key, String value) {
                                return null;
                            }

                            @Override
                            public String remove(Object key) {
                                return null;
                            }

                            @Override
                            public void putAll(@NonNull Map<? extends String, ? extends String> m) {

                            }

                            @Override
                            public void clear() {

                            }

                            @NonNull
                            @Override
                            public Set<String> keySet() {
                                return null;
                            }

                            @NonNull
                            @Override
                            public Collection<String> values() {
                                return null;
                            }

                            @NonNull
                            @Override
                            public Set<Entry<String, String>> entrySet() {
                                return null;
                            }

                            @Override
                            public boolean equals(Object o) {
                                return false;
                            }

                            @Override
                            public int hashCode() {
                                return 0;
                            }
                        };
                        Log.w(TAG,"methods addFriend Value Val"+value.get("email"));
                        Log.w(TAG,"methods addFriend Value "+value.get("username"));
                        // i can see Value values
                        map.put("email",""+email.toString().trim());
                        map.put("username",""+value.get("username").toString().trim());
                        Log.w(TAG,"methods addFriend Map :"+map.get("email"));
                        // here i can't get the map values
                       friendlist.setValue(map);
                    }

                }

1 个答案:

答案 0 :(得分:2)

Map是一个界面,你需要一些实现,你可能需要一个HashMap

map = new HashMap<>();

您可以在documentation

中查看不同的实施类