package tech.powerjob.common.response; import tech.powerjob.common.PowerSerializable; import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.apache.commons.lang3.exception.ExceptionUtils; /** * The result object returned by the request *

* 低版本由于 Jackson 序列化配置问题,导致无法在此对象上新增任何字段了,否则会报错 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "code" (class tech.powerjob.common.response.ObjectResultDTO), not marked as ignorable (3 known properties: "data", "success", "message"]) * at [Source: (String)"{"success":true,"code":null,"data":2,"message":null}"; line: 1, column: 28] (through reference chain: tech.powerjob.common.response.ObjectResultDTO["code"]) *

* 短期内所有的新增字段需求,都通过新对象继承实现 * * @author tjq * @since 2020/3/30 */ @Getter @Setter @ToString public class ResultDTO implements PowerSerializable { protected boolean success; protected T data; protected String message; public static ResultDTO success(T data) { ResultDTO r = new ResultDTO<>(); r.success = true; r.data = data; return r; } public static ResultDTO failed(String message) { ResultDTO r = new ResultDTO<>(); r.success = false; r.message = message; return r; } public static ResultDTO failed(Throwable t) { return failed(ExceptionUtils.getStackTrace(t)); } }