【发布时间】:2017-03-11 05:26:03
【问题描述】:
@JsonRootName(value = "studentInfo")
@JsonInclude(value = Include.NON_EMPTY)
public class StudentInfo {
private String student;
@JsonProperty("address")
private String address;
@JsonProperty("studentName")
public String getStudent() {
return student;
}
@JsonProperty("studentUserId")
public void setStudent(String student) {
this.student = student;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
这是我的Student 课程,我在与学生相关的 API 中将此对象用作 DTO。
在这里,我以这样一种方式使用了 student 字符串变量,当调用 POST/PUT/ API 并传递 studentUserId 时,它将被设置为 student 字符串变量,但每当 StudentInfo 对象作为响应实体返回时,它将返回实际存储在用户表中的学生姓名。
我只想知道,我使用 student 字符串变量和@JsonProperty 的方式是正确的使用方式还是错误的做法?
【问题讨论】:
-
是的,这是不好的做法。您的班级中应该有一个单独的
userId字段。对不同的数据使用相同的字段只是等待发生的错误。当其他人稍后再看课程时,也会感到非常困惑。 -
如果字段的语义取决于它所使用的上下文,那么为该类编写测试也是一场噩梦。