为什么ButtonType不是';javafx中的枚举

为什么ButtonType不是';javafx中的枚举,button,javafx,enums,Button,Javafx,Enums,我曾尝试在switch语句中使用ButtonType变量,结果发现它不是枚举 我多少意识到这是为了让开发人员能够更改ButtonType的文本,ButtonType具有ButtonData属性,它是一个枚举 我想问,当ButtonType为enum时,这种改变文本的能力难道不可能吗?我认为开发人员只关心将在UI中显示的文本,因此我认为枚举上的方法show(String whatthedeveloperwants)就足够了,不是吗?在我看来,这里的问题从“可以做到吗?”提升到“应该做到吗?”。从语

我曾尝试在switch语句中使用ButtonType变量,结果发现它不是枚举

我多少意识到这是为了让开发人员能够更改ButtonType的文本,ButtonType具有ButtonData属性,它是一个枚举


我想问,当ButtonType为enum时,这种改变文本的能力难道不可能吗?我认为开发人员只关心将在UI中显示的文本,因此我认为枚举上的方法
show(String whatthedeveloperwants)
就足够了,不是吗?

在我看来,这里的问题从“可以做到吗?”提升到“应该做到吗?”。从语法的角度来看,您的建议是有效的。您可以有按钮类型的枚举,并有一个方法来更改负责UI文本的内部枚举字段。然而,从概念的角度来看,它与枚举的思想背道而驰。从中,枚举类型表示一组预定义常量。枚举元素是常量的想法在许多其他语言中是一致的。它向开发人员传达了一个信息,因此,人们期望一个常量值,而不是更改。如果类型的实例需要随时间而更改,则通常使用类机制
ButtonType
可以更改,而
ButtonData
具有预定义的值,开发人员已经捕获了这些值,因此他们分别使用类和枚举


我怀疑他们是否经历过相同的思想链,但我相信他们在为
ButtonType

设计API时使用了相同的原则,开发人员如何将
开发者想要的
添加到enum中?