• 问题情景
    昨天写接口的时候打印调试参数,发现没有打印出来继承的父类的信息,但是我子类和父类都加了@Data注解啊,点进去查看这个注解是包含toString方法的
    java打印日志多继承父类信息没打印出来的处理方法_父类

我的代码如下
java打印日志多继承父类信息没打印出来的处理方法_Data_02

java打印日志多继承父类信息没打印出来的处理方法_字符串_03

  • 解决方案
    估计是继承不到父类对象的toString吧,查阅资料发现一个注解@ToString(callSuper = true),这个注解作用是:
    @ToString(callSuper = true) 是一个注解,用于生成toString方法。callSuper = true表示在生成的toString方法中会调用超类的toString方法

++**~~重点是callSuper = true

加上后试试,发现完美打印输出

import com.pdm.entity.CadPart;
import lombok.Data;
import lombok.ToString;

@Data
@ToString(callSuper = true)
public class PartAttr extends CadPart {

    /**
     * 属性 mapJson字符串
     */
    private String attrs;


}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

打印结果如下
PartAttr(super=CadPart(super=BaseEntity(id=1819187533175967746, creator=null, createDate=null, updater=null, updateDate=null), partNo=null, partRev=null, name=null, cName=测试记录d, material=null, gauge=null, massqty=null, partType=null, isLock=null, status=null, description=null, children=null, parentId=1819218019696787458, attrs={“ME_RANGE”:“3”,“ME_SCOPE”:“3”}, createName=null, updaterName=null, srcId=null), attrs={“ME_RANGE”:“3”,“ME_SCOPE”:“3”}),file:123.xlsx