我正在尝试将Firebase实时数据库映射到Android上的Java类。我映射的类看起来像这样:
public class Thing {
private String mName;
private String mDescription;
public void setName(String name) {
this.mName = name;
}
public void setDescription(String description) {
this.mDescription = description;
}
}
这会传递给Firebase的.getValue()
:
dataSnapshot.getValue(Thing.class);
但是这会记录ClassMapper
警告,但不会设置值:
W / ClassMapper:在com.example.android.demo.Thing类上找不到名字的setter / field W / ClassMapper:没有在com.example.android.demo.Thing类上找到描述的setter / field
为什么忽略为这些字段提供的setter?
答案 0 :(得分:1)
此处显示的问题是误导性的日志消息。除非有匹配的getter,否则ClassMapper
将不会使用setter:
public class Thing {
private String mName;
private String mDescription;
public void setName(String name) {
this.mName = name;
}
public String getName() {
return this.mName;
}
public void setDescription(String description) {
this.mDescription = description;
}
public String getDescription() {
return this.mDescription;
}
}