作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下来定义固定的常量集
private enum MENU_OPTIONS {
MENU_SEND_SMS,
MENU_COPY_SMS,
MENU_ADD_SMS,
MENU_POST_FACEBOOK,
MENU_TWEET
}
我有一个接受 INT 的方法
menu.add (int, int, int, String);
所以当我向上述方法提供“MENU_OPTIONS.MENU_SEND_SMS”时,它报告错误
menu.add(0, MENU_SEND_SMS, 0, ); // error: The method add(int, int, int, CharSequence) in the type Menu is not applicable for the arguments (int, FavoriteSMSFragment.MENU_OPTIONS, int, String)
那么如果我想使用一组固定的常量,我应该如何定义 ENUM?
最佳答案
枚举是一个类。 MENU_OPTIONS.MENU_SEND_SMS
的类型为 MENU_OPTIONS
(由于它是代表单个菜单选项的类,因此应命名为 MenuOption
)。
因此,您的 add()
方法应采用 MenuOption
类型的参数,而不是 int
类型的参数。这更安全,因为它记录了该方法所期望的内容(int 比 MenuOption 更模糊),并且因为您无法传递除枚举中定义的值之外的任何值(而任何无效的 int 值都可能是传递给以 int 作为参数的方法)。
关于java - 枚举不能用于固定常量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16122041/
我是一名优秀的程序员,十分优秀!