2017-05-24 52 views
0

我试图将Firebase实时数据库映射到Android上的Java类。我映射到看起来像这样的类:Firebase ClassMapper忽略提供的设置器

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; 
    } 
} 

它传递给火力地堡的.getValue()

dataSnapshot.getValue(Thing.class); 

但是这会将一个ClassMapper警告,不设置值:

W/ClassMapper:在类com.example.android.demo.Thing上找到的名称没有设置者/字段 W/ClassMapper:没有在类com.example.android.demo.Thing上找到的描述的设置者/字段

为什么忽略为这些字段提供的setter?

+0

谢谢,弗兰克,修复我的icky标签! – RedBassett

回答

1

这里显示的问题是一个令人误解的日志消息。 ClassMapper将不会使用setter,除非有一个匹配的getter:

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; 
    } 
}