gpt4 book ai didi

java - 在子类中强制使用 Java 属性类型

转载 作者:行者123 更新时间:2023-11-30 07:59:27 26 4
gpt4 key购买 nike

我有一个关于 Java 中的继承/强制某个属性的值的问题,我不确定,即使我花了很多时间思考它。我会尽量简单。

所以我有一个抽象Foo,它有Lombok注解@Data:

@Data
public abstract class Foo{

private String id;
protected BoundType type;

public abstract void setBoundType(BoundType boundType);
}

这里是枚举BoundType:

public enum BoundType {

IN, OUT;
}

我还有另外两个类,InFooOutFoo,它们扩展了 FooInFooboundType 应该始终是枚举类型 IN。另一方面,OutFoo 中的 boundType 应该始终是枚举类型 OUT。例如:

@Data
public class InFoo extends Foo{

public void setBoundType() {
//ALWAYS HAS TO BE BoundType.IN
}
}

我该如何强制执行?不确定如何设计它。提前致谢。

最佳答案

确保构造函数为每个子类设置正确的值,然后确保没有 setter ,这样就无法更改值。

另请参阅此帖子 Omitting one Setter/Getter in Lombok关于如何省略 BoundType 字段的 setter 。

关于java - 在子类中强制使用 Java 属性类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39345777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com