最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之注解@Data和@ToString(callSuper=true)解讀

 更新時間:2024年11月06日 09:48:03   作者:A_bad_horse  
在使用Lombok庫的@Data注解時,若子類未通過@ToString(callSuper=true)注明包含父類屬性,toString()方法只打印子類屬性,解決方法:1. 子類重寫toString方法;2. 子類使用@Data和@ToString(callSuper=true),父類也應(yīng)使用@Data

問題復(fù)現(xiàn)

@Data
public class People {
    private String height;
    private String weight;
}
@Data
public class Student extends People {
    private String name;
}
public class Test {
    public static void main(String[] args) {
        Student student = new Student();
        student.setHeight("180cm");
        student.setWeight("65kg");
        student.setName("Jack");

        System.out.println(student.toString());
    }
}

運行代碼后,打印如下:

Student(name=Jack)

Root Cause

如果domain中沒有重寫toString, 且使用了@Data注解, 調(diào)用toString時只會打印子類本身的屬性值, 如果想要打印父類的屬性:

  • 方式一:重寫tostring
  • 方式二:子類加上@Data和@ToString(callSuper = true)兩個注解, 父類也使用注解@Data

解決方案

@Data
@ToString(callSuper = true)
public class Student extends People {
    private String name;
}

行代碼后,打印如下:

Student(super=People(height=180cm, weight=65kg), name=Jack)

lombok 使用@Data時會重寫toString(),查看@Data源代碼;

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

东阳市| 定陶县| 上高县| 贵阳市| 扎鲁特旗| 宕昌县| 江永县| 青田县| 梧州市| 丹巴县| 铜山县| 鸡东县| 马尔康县| 灯塔市| 三江| 广宁县| 福建省| 徐州市| 凉山| 晴隆县| 武冈市| 泌阳县| 太谷县| 尼玛县| 新干县| 高清| 荔浦县| 华容县| 抚顺县| 藁城市| 体育| 绥江县| 杨浦区| 高雄县| 康定县| 滦南县| 滨海县| 渑池县| 兴仁县| 洛隆县| 乌拉特中旗|