gpt4 book ai didi

java - 枚举类型中的方法可以更改枚举实例的状态吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:31 25 4
gpt4 key购买 nike

如果 Enums 是摆脱编译时常量的答案,为什么语言设计者提供了允许任意方法和字段并在 Enums 上实现任意接口(interface)的工具?这些方法永远不能改变 Enum 实例的状态,或者它们可以吗?如果他们被允许改变状态,那么枚举类型的不变性,即导出一些常量的某种类型将破坏恕我直言。

最佳答案

Java 枚举实际上只是经过编译器和运行时一些特殊处理的类。所以是的,对枚举实例的方法调用肯定会改变它的状态。我不确定你的意思是“然后枚举类型的不变量,即导出一些常量的某种类型将会中断”。

谁说枚举只能是一堆常量?枚举类型的本质是你有一个预定义的固定数量的实例,你可以通过名称来引用它们——而 Java 枚举实现了这一点。但是为什么不允许一种语言拥有比这更强大的枚举呢?

如果您不想要额外的功能,没有人会强制您使用它。您可以使用没有字段或方法的 Java 枚举,它们的行为与 C 枚举非常相似。

关于java - 枚举类型中的方法可以更改枚举实例的状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11774327/

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