龙目岛@Data抱怨“龙目岛需要在基类中使用默认构造函数”,当抽象类具有最终字段时
2022-09-03 10:12:36
@Data
public abstract class B {
private final String str;
}
@Data
public class A extends B{
private final String s;
}
A类上的数据在intellij中抱怨,但代码可以通过命令行成功编译,不知道该怎么办
@Data
public abstract class B {
private final String str;
}
@Data
public class A extends B{
private final String s;
}
A类上的数据在intellij中抱怨,但代码可以通过命令行成功编译,不知道该怎么办
一个问题是,这是针对可变数据的,在你的类中没有可变的。所以使用是完全错误的...它是否编译并不重要。@Data
@Data
如果需要可变数据,请删除该字段。对于不可变数据,请创建所有字段并使用 。有时,需要部分可变的数据,但我努力避免它,因为它令人困惑(有些字段可以设置,有些不能),并且它们提供了两者的缺点。final
final
@Value
另一个问题是龙目岛无法访问类层次结构。有了最后一个字段,你需要在构造函数中初始化它,这意味着 的构造函数必须调用一个非默认构造函数。这在龙目岛是不可能的。在龙目岛中,这是龙目岛处理类层次结构的唯一特征。B
A
@Superbuilder