为什么不是java枚举值中的一些常量字段?

时间:2015-11-23 10:35:57

标签: java enums constants

有关ScrollPane的文档不使用滚动条策略的枚举值(并且其他类也不用于常量字段值),是否有原因?

这些常量字段值的值是否有更深入的意义,还是只是按升序排列?因为在我看来,像public ScrollPane(int scrollbarDisplayPolicy)这样的构造函数看起来没有例如public ScrollPane(ScrollPane.ScrollbarDisplayPolicy scrollbarDisplayPolicy)

那么有意义

或者这只是没有多个只有少量值的枚举?

2 个答案:

答案 0 :(得分:3)

答案很简单:enum仅在Java 5中引入,而且这些常数比这更长。

不幸的是,在不破坏代码兼容性的情况下,无法改进API。 (一般来说,为新功能改装API是一项不可能完成的任务,但是可能的例子是引入泛型,也是在Java 5中。)

答案 1 :(得分:2)

在版本1.5中引入了Java enum

因此,在java 1.5之前开发的大多数库都使用static final常量。

例如,log4j levels也是整数值的公共静态最终值。