【发布时间】:2021-05-18 12:22:29
【问题描述】:
假设我有两个继承自 Parent 类的名为 Child1 和 Child2 的类。如下所示,所有类都标有 @NoArgsConstructor @AllArgsConstructor @superBuilder 注释。
@NoArgsConstructor
@AllArgsConstructor
@superBuilder
class Parent{
Integer id;
@Setter(AccessLevel.NONE)
String type;
}
@NoArgsConstructor
@AllArgsConstructor
@superBuilder
class Child1 extends Parent{
// type = child1
}
@NoArgsConstructor
@AllArgsConstructor
@superBuilder
class Child2 extends Parent{
// type = child2
}
如何在子类中设置默认定义在parent中的type字段?
【问题讨论】:
-
type是否已初始化为Parent中的某个内容?否则它不会编译。 -
我认为你需要像
final String type = "some value";一样在Parent中初始化 -
你说得对,我只是把 final 放在强调这个字段的值应该只在子 @Sweeper 初始化时分配
-
@Hamed 那是...不是
final的意思。 “这个字段的值应该只在子初始化时分配”不是你可以在 Java 中强制执行的。 -
是的,我知道。我不希望此字段更改运行时。