无法解析带下划线的字段
Not able to parse fields with underscores
我在 Firebase 服务器上有一个列名 viewed_by
Test
|
|--viewed_by: 30
在应用程序上我有一个 POJO class,它有成员 viewed_by
Test.class 有成员
private int viewed_by;
在 onDataChange 函数中,当我收到数据时,我使用 getValue 函数
获取测试对象
Test t = dataSnapshot.getValue(Test.class);
但我得到的值是 0 而不是 30。
如果我将字段名称从 viewed_by 更改为 viewedBy(服务器和 POJO class ), 我得到期望值 (30)
是getValue函数的解析问题吗?或者字段名称不应该在名称中包含下划线?
刚刚弄明白了,还必须将函数名称从 ViewedBy 更改为 Viewed_By 才能与 viewed_by 字段[=11] 一起使用=]
/**
*
* @return
* The viewed_by
*/
public int getViewed_By() {
return viewed_by;
}
/**
*
* @param viewed_by
* The viewed_by
*/
public void setViewed_By(int viewed_by) {
this.viewed_by = viewed_by;
}
另一种选择是像下面这样在模型中使用 @PropertyName("property_name")
声明属性,然后像您喜欢的那样使用 getter 和 setter。
public class Actor {
@NonNull
@PrimaryKey
@ColumnInfo(name = "profile_id")
@PropertyName("profile_id")
private String profileId;
@ColumnInfo(name = "name")
@PropertyName("name")
private String name;
@PropertyName("profile_id")
public String getProfileId() {
return profileId;
}
@PropertyName("profile_id")
public void setProfileId(String profileId) {
this.profileId = profileId;
}
@PropertyName("name")
public String getName() {
return name;
}
}
我在 Firebase 服务器上有一个列名 viewed_by
Test
|
|--viewed_by: 30
在应用程序上我有一个 POJO class,它有成员 viewed_by
Test.class 有成员
private int viewed_by;
在 onDataChange 函数中,当我收到数据时,我使用 getValue 函数
获取测试对象Test t = dataSnapshot.getValue(Test.class);
但我得到的值是 0 而不是 30。
如果我将字段名称从 viewed_by 更改为 viewedBy(服务器和 POJO class ), 我得到期望值 (30)
是getValue函数的解析问题吗?或者字段名称不应该在名称中包含下划线?
刚刚弄明白了,还必须将函数名称从 ViewedBy 更改为 Viewed_By 才能与 viewed_by 字段[=11] 一起使用=]
/**
*
* @return
* The viewed_by
*/
public int getViewed_By() {
return viewed_by;
}
/**
*
* @param viewed_by
* The viewed_by
*/
public void setViewed_By(int viewed_by) {
this.viewed_by = viewed_by;
}
另一种选择是像下面这样在模型中使用 @PropertyName("property_name")
声明属性,然后像您喜欢的那样使用 getter 和 setter。
public class Actor {
@NonNull
@PrimaryKey
@ColumnInfo(name = "profile_id")
@PropertyName("profile_id")
private String profileId;
@ColumnInfo(name = "name")
@PropertyName("name")
private String name;
@PropertyName("profile_id")
public String getProfileId() {
return profileId;
}
@PropertyName("profile_id")
public void setProfileId(String profileId) {
this.profileId = profileId;
}
@PropertyName("name")
public String getName() {
return name;
}
}