Java 无法分析带下划线的字段
我在Firebase服务器上查看了一个列名Java 无法分析带下划线的字段,java,android,firebase,firebase-realtime-database,pojo,Java,Android,Firebase,Firebase Realtime Database,Pojo,我在Firebase服务器上查看了一个列名 Test | |--viewed_by: 30 在应用程序上,我有一个POJO类,其中的成员由 测试。类具有成员 private int viewed_by; 在onDataChange函数中,当我收到数据时,我使用getValue函数获取测试对象 Test t = dataSnapshot.getValue(Test.class); 但是我得到的值是0,而不是30 如果我将字段名从查看者更改为查看者(在服务器和POJO类上),我将得到
Test
|
|--viewed_by: 30
在应用程序上,我有一个POJO类,其中的成员由
测试。类具有成员
private int viewed_by;
在onDataChange函数中,当我收到数据时,我使用getValue函数获取测试对象
Test t = dataSnapshot.getValue(Test.class);
但是我得到的值是0,而不是30
如果我将字段名从查看者更改为查看者(在服务器和POJO类上),我将得到预期值(30)
这是getValue函数中的解析问题吗?或者字段名中不应该有下划线?JU已经解决了,必须将函数名也从ViewedBy更改为viewd_By,才能使用viewd_By字段
/**
*
* @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;
}
Jus发现了这一点,必须将函数名也从ViewedBy更改为viewd_By,才能使用viewd_By字段
/**
*
* @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\u 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;
}
}
另一种方法是在模型中使用
@PropertyName(“property\u 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;
}
}
最好切换到GSon或Jackson库以避免此类错误最好切换到GSon或Jackson库以避免此类错误