首页 > 其他分享 >lombok 怎么解决子父类继承的时候使用的问题

lombok 怎么解决子父类继承的时候使用的问题

时间:2024-07-10 16:19:10浏览次数:8  
标签:Parent 继承 Value Child 注解 lombok 父类 public

在Java中使用Lombok来简化Java Bean的开发时,处理继承关系可能会遇到一些问题。Lombok的注解,如@Getter@Setter@ToString等,默认不会处理继承的字段和方法。这会导致子类无法自动继承父类的Lombok注解生成的方法。

以下是一些解决继承问题的建议和示例代码:

  1. 在父类和子类中分别使用Lombok注解
    在父类和子类中分别使用Lombok注解来生成各自的getter、setter等方法。这样可以确保每个类都有相应的方法。
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class Parent {
    private String parentField;
}

@Getter
@Setter
@ToString(callSuper = true)
public class Child extends Parent {
    private String childField;
}
  1. 在子类中调用父类的getter和setter方法
    确保在子类中可以调用父类的getter和setter方法。
public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.setParentField("Parent Value");
        child.setChildField("Child Value");

        System.out.println(child.getParentField()); // 输出: Parent Value
        System.out.println(child.getChildField());  // 输出: Child Value
        System.out.println(child); // 输出: Child(parentField=Parent Value, childField=Child Value)
    }
}
  1. 使用@SuperBuilder注解
    如果需要构建器模式,可以使用@SuperBuilder注解,它支持继承。需要在父类和子类上都加上@SuperBuilder注解。
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.SuperBuilder;

@Getter
@Setter
@ToString
@SuperBuilder
public class Parent {
    private String parentField;
}

@Getter
@Setter
@ToString(callSuper = true)
@SuperBuilder
public class Child extends Parent {
    private String childField;
}

public class Main {
    public static void main(String[] args) {
        Child child = Child.builder()
                .parentField("Parent Value")
                .childField("Child Value")
                .build();

        System.out.println(child); // 输出: Child(super=Parent(parentField=Parent Value), childField=Child Value)
    }
}

建议

  1. 确保在每个继承层次都适当地使用Lombok注解,以保证代码简洁和功能完整。
  2. 如果遇到更复杂的继承关系,考虑手动编写一些方法来确保行为的正确性和可读性。

a. 在您的代码中尝试使用这些Lombok注解来处理继承问题,并运行一些测试用例来验证其行为。

b. 了解更多Lombok注解的使用方法和最佳实践,特别是在复杂的继承结构中。

标签:Parent,继承,Value,Child,注解,lombok,父类,public
From: https://www.cnblogs.com/xd502djj/p/18294339

相关文章

  • CSS 选择符及其继承属性详解
    CSS(层叠样式表)是网页设计中不可或缺的一部分,它负责控制网页的样式和布局。CSS选择符是CSS规则的核心,用于选择HTML元素并应用样式。本文将详细介绍CSS选择符的种类,并探讨哪些CSS属性是可以继承的。1.CSS选择符的种类CSS选择符用于选择HTML元素,以便为其应用样式......
  • 【Python进阶】继承进阶和私有权限
    目录一、继承进阶1、方法重写2、调用父类方法3、多层继承二、私有权限1、私有属性2、私有方法面向对象基础:小白也能看懂的Python基础教程(8)-CSDN博客一、继承进阶1、方法重写当父类的同名方法达不到子类的要求,则可以在子类中对方法进行重写。语法:class父类名(obje......
  • 【C++深度探索】继承机制详解(二)
    hellohello~,这里是大耳朵土土垚~......
  • Day10-面向对象-继承和多态
    继承和多态Day10面向对象-继承2.继承2.1继承的好处2.2继承的语法2.3继承的特点一:成员变量2.3.1私有化(private)2.3.2成员变量不重名2.3.3成员变量重名(实际开发中不推荐这样做)2.4继承的特点二:成员方法2.4.1成员方法不重名2.4.2成员方法重名——重写(Override)......
  • Java基础——继承与多态
    Java基础——继承与多态方法重写构造方法不能被重写publicclassFpet{Stringname;inthealth;intlove;publicvoidprint(){System.out.println("宠物的自白:");System.out.println("我的名字是"+this.getName()+"健康度是"+t......
  • 【C++深度探索】:继承(定义&&赋值兼容转换&&作用域&&派生类的默认成员函数)
    ✨                            愿随夫子天坛上,闲与仙人扫落花    ......
  • C++中的继承与多态 历史最详细版本(1)
    1 继承的概念和定义1.1继承的概念    继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程......
  • lombok&junit
    lombok&junit1lombok先去官网或者maven仓库下载jar包https://mvnrepository.com/导入第三方包到项目中右键lib文件夹,点击addaslibrary默认jvm不解析第三方注解,需要手动开启使用//@Setter//生成set方法1//@Getter//生成get方法2//@To......
  • Java--继承
    1.继承的本质是对某一批类的抽象,从而实现对世界更好的建模2.extends的意思是“扩展”,子类是父亲的扩展3.Java中只有单继承,没有多继承4.继承关系的两个类,一个为子类(派生类),一个为父类(基类),子类继承父亲,使用关键字extends来表示  5.如图所示,Person类中定义了say方法,但Studen......
  • 探案:其它配置|参数无错,罪魁祸首是它----使用lombok包Builder注解引起MyBatisSystemExce
    案件回顾:场景:实现某查询功能。详情具体如下:注意⚠️⚠️org.mybatis.spring.MyBatisSystemException:nestedexceptionisorg.apache.ibatis.executor.result.ResultMapException:Errorattemptingtogetcolumn'xxx'fromresultset.Cause:java.lang.NumberFormatExcept......