Java类继承覆盖List字段

标签 java list inheritance avro lombok

我面临一个问题,我有一个avro生成类A和另一个B定义如下:

class A {
    String code;
}

class B {
     String someString;
     List<A> codes;
}

以及扩展前面描述的两个生成的类的自定义类,如下所示:

class CustomA extends A {
    String type;
}

class CustomB extends B {
    List<CustomA> codes;
}

如果我删除列表<>,它就会起作用,但我确实需要它。 对于 getter/setter,我使用 lombok @Data 注释。

有人有解决方案吗?

我想 map <>也会遇到同样的问题,所以我也需要一个解决方案。

感谢您的回答。

[编辑] 所以我将用下面这两个屏幕截图给出更具体的例子。

Here my classes declarations 。正如我之前所说,类 A 和 B(此处为 User 和 ToDoItem)是由 avro 模式生成的类,因此我无法在其中修改/写入。 Here the compilation errors I have .

最佳答案

您可以使用泛型。喜欢

class B<T extends A> {
   List<T> codes;
}

class CustomB extends B<CustomA> {
    ...
}

关于Java类继承覆盖List字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53021915/

相关文章:

c++ - 为什么需要 this 指针来访问继承的属性?

java - spring auth错误没有AuthenticationProvider

Python:将包含非 ASCII 字符的列表写入文本文件

java - 避免在 JEditorPane 中使用 <p> 中的填充/边距

c# - 来自数组或列表的 MS 图表 C# 数据源

list - 如何将具有重复项的数组转换为具有重复项总和的数组?

c# - 从继承子类对象访问父类虚方法

java - 派生类的类变量的初始化/实例化和调用基类构造函数的顺序

java - HTML 隐藏字段在 Spring Boot Thymeleaf 中未接收模型属性值

Java 奇怪的引用行为?