子类加@Data后,IDEA调试时“出现”父类属性无值

项目场景:

自测一个功能的时候,IDEA调试同过对象的VIEW查看对象内容,发现加了@Data的返回子类型中父类的属性没有出现。


问题描述

// 父类Response中的返回VO对象

@Data
public class PVO{

    private Sting serialNum;
}


// 子类拓展了父类属性
@Data
public class SVO extends PVO{

    private Sting userName;
}

接口返回对象为SVO,在debug代码过程中同过代码点击VIEW的时候查看对象内容,这时候没有“出现”父类的属性。


原因分析:

其实同过VIEW的查看对象内容是根据对象的toString()方法展示的,在子类和父类都使用了@Data注解时,子类toString以及equal和toHash都不会将父类的属性带入进来,导致同过VIEW的时候不会出现父类的方法。


解决方案:

1、调试的时候在IDEA控制台查看对象的属性值是准确的;

2、如果非要使用VIEW查看的话,在子类加上如下注解,这样就会引入父类方法。

@ToString(callSuper = true)
### 回答1: Lombok是一个用于简化Java开发的工具库,而@Data是Lombok中的一个注解,被用于自动生成类的getter、setter、equals、hashCode和toString等方法。 使用@Data注解可以避免手动编写这些繁琐的方法,提高开发效率。当我们在类上添@Data注解后,Lombok会自动为该类生成getter和setter方法,并实现equals、hashCode和toString方法。 对于父类而言,如果我们在子类上使用@Data注解,则只会自动为子类生成对应的getter和setter方法,并没有实现equals、hashCode和toString方法。 若希望父类也能自动实现这些方法,我们需要在父类上同样添@Data注解。这样一来,父类子类都会自动实现getter、setter、equals、hashCode和toString等方法,减少了代码冗余,使代码更简洁易读。 总之,使用Lombok的@Data注解可以消除我们在编写Java重复编写getter、setter、equals、hashCode和toString等方法的工作,提高了开发效率,使代码更简洁、易读。无论是在父类还是子类上使用@Data注解,都能自动生成相应的方法,并减少了代码冗余。 ### 回答2: Lombok是一个开源的Java库,它通过使用注解来简化Java代码的编写。其中,@Data注解是Lombok中的一个注解,用于自动生成类的所有必要方法,如构造方法、getter和setter方法、equals和hashCode方法等。 在父类中使用@Data注解,将会自动为父类生成以下方法: 1. 无参构造方法:该方法用于创建一个空的父类对象。 2. 全参构造方法:该方法用于创建一个包含所有属性值的父类对象。 3. getter和setter方法:这些方法分别用于获取和设置父类中的属性值。 4. equals方法:该方法用于判断两个父类对象的属性值是否相等。 5. hashCode方法:该方法用于获取父类对象的哈希码值。 6. toString方法:该方法用于返回父类对象的字符串表示。 通过在父类中使用@Data注解,我们可以省去手动编写以上这些方法的工作,实现了代码的简洁性和可读性。同,Lombok还可以通过其他注解用于定制生成的方法,如@RequiredArgsConstructor注解用于生成只含有必选属性的构造方法,@EqualsAndHashCode注解用于生成自定义的equals和hashCode方法等。 总之,使用Lombok的@Data注解可以简化父类的代码编写,提高开发效率,让我们更专注于业务逻辑的实现。 ### 回答3: lombok是一个用于简化Java代码的开源框架,主要用于减少冗余的getter和setter方法的编写,提高代码的可读性和简洁性。其中@data注解是lombok提供的一个注解,用于自动生成类的所有基本方法,包括getter、setter、toString、equals和hashCode等。 在父类中使用lombok的@data注解,可以简化代码的编写,减少了重复的方法定义。当我们在父类中添了@data注解后,lombok会根据类中的成员变量自动为我们生成对应的getter和setter方法。同,它还会自动生成toString、equals和hashCode等方法,这些方法对于类的实例在打印输出、比较和哈希计算非常有用。 使用lombok的@data注解还可以提高代码的可读性和维护性。在代码中,我们通常需要编写大量的getter和setter方法,这些方法的编写比较繁琐且容易出错。而使用lombok的@data注解后,我们只需要在类上添该注解,就可以自动为类生成所有的方法,大大减少了代码量,使代码更简洁和易读。 总而言之,lombok的@data注解在父类中的使用可以极大地简化代码的编写,减少了冗余的方法定义和重复劳动。它为我们自动生成了所有基本方法,提高了代码的可读性和维护性。因此,在日常的Java开发中,可以考虑使用lombok的@data注解来简化父类的编写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值