我的班级字段是List<>,我输出了tostring方法
private String subjectCode;
private Long clientSn;
private Long ruleId;
private String beginDate;
private List<LessonPreferenceItemDTO> classPlans;
@Override
public String toString() {
return "LessonPreferenceSaveReqDTO{" +
"subjectCode='" + subjectCode + '\'' +
", clientSn=" + clientSn +
", ruleId=" + ruleId +
", beginDate='" + beginDate + '\'' +
", classPlans=" + classPlans +
'}';
}
但是,classPlans outout是java实体,不是LessonPreferenceItemDTO字段信息,那么,如何输出classPlans在这个toString()
答案 0 :(得分:2)
您还必须覆盖public String toString()
的{{1}}。您可以提供 Apache Commons
ToStringBuilder.reflectionToString尝试输出每个属性。
例如,LessonPreferenceItemDTO
类将使用ArrayList
和{
围绕其元素并将}
所包含的元素分隔为每个元素,
来呈现自身包含元素。
如果您不喜欢toString()
的结果格式,则必须在迭代每个元素时自行序列化列表。
答案 1 :(得分:1)
您必须覆盖toString()
类中的LessonPreferenceItemDTO
方法,但在此之后,您需要在此列表的每个元素上调用toString()
。
您可以使用Java 8流API
classPlans.stream()
.map(LessonPreferenceItemDTO::toString)
.collect(Collectors.joining(","));
答案 2 :(得分:0)
@Override
public String toString() {
return "LessonPreferenceSaveReqDTO{" +
"subjectCode='" + subjectCode + '\'' +
", clientSn=" + clientSn +
", ruleId=" + ruleId +
", beginDate='" + beginDate + '\'' +
", classPlans=" + classPlans.stream().map(LessonPreferenceItemDTO::toString).collect(Collectors.joining(",")) +
'}';
}
我成功输出想要,使用java 8流,非常感谢@ Harmlezz @ Neeraj Jain