我正在使用一个接口来从数据库中读取一个值,在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);
}
}
答案 0 :(得分:2)