Java 无法分析带下划线的字段

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类上),我将得到

我在Firebase服务器上查看了一个列名

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库以避免此类错误