BO中toString()方法输出父级私有属性的两种方式

       我们都知道子类是无法集成父类的私有属性的,特别在实体类中属性都是私有的,而经常又要写BO来继承这些实体类,如果使用IDEA直接自动生成toString()方法默认是不输出父类的,必须在改方法里显示调用父级toString():

public class UserDepartmentBO extends User {

    //关联院系实体类
    private Department department;

    @Override
    public String toString() {
        return
                super.toString()+    //调用父级
                "UserDepartmentBO{" +
                "department=" + department +
                '}';
    }
}

       这是一种方法,另一种是使用了idea的lombok插件,在@Data注解中会自动提供toString方法,但是提供的toString方法默认是不调用父级的toString()的,需要自己手动加@ToString并且加入参数:

@Data
@ToString(callSuper = true)  
public class UserDepartmentBO extends User {

    //关联院系实体类
    private Department department;
}

       这里提醒一下第一种方法的优先级高于第二种,即手写了toString会覆盖lombok所提供的。


版权声明:本文为weixin_42822484原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。