Java类中布尔变量的正确get方法约定是什么。例如:
private boolean qExist;
public boolean isqExist() {
return qExist;
}
public void setqExist(boolean qExist) {
this.qExist = qExist;
}
以上方法是由eclipse生成的。而wsimport在.xsd文件中生成'qExist'为
public boolean isQExist() {
return qExist;
}
public void setQExist(boolean qExist) {
this.qExist = qExist;
}
Jackson JSON序列化程序期望第一个方法出现在类中,否则它会将变量的值(在本例中为“qexist” - 全部小写)附加到JSON对象。当它传递给web ui时,javascript不知道变量,因为它期待'qExist'。
这可能是杰克逊的一个错误,因为如果布尔变量以两个或更多个小写字母开头,那么杰克逊会使用上面的第二种方法。
我确实通过告诉Jackson对象映射器不查找setter / getters /是值的方法但是查看字段来解决问题。
答案 0 :(得分:1)
通常情况下,你会把每个新单词都大写 - 无论它有多少个字母
答案 1 :(得分:0)
出于好奇,Q代表什么?术语"正确"可能取决于你如何在反射中使用吸气剂/设置。我会用:
public boolean isQExist() {
return qExist;
}
public void setQExist(boolean qExist) {
this.qExist = qExist;
}
答案 2 :(得分:0)
如果您不想直接使用该字段,则可以删除与POJO结构的紧耦合并使用注释。
public static final String BLAH_PROPERTY = "qExists";
private boolean blah;
@JsonProperty(BLAH_PROPERTY)
public boolean isBlah() {
return blah;
}
@JsonProperty(BLAH_PROPERTY)
public void setBlah(boolean blah) {
this.blah = blah;
}