enum和switch case结合使用
在将enum和switch case结合使用的过程中,遇到了这个错误:“An enum switch case label must be the unqualified name of an enumeration constant”,代码如下所示:
public enum EnumType {type1("type1"), type2("type2"), type3("type3");private String type;EnumType(String type) {this.type = type;}public String getType() {return type;}}@OnClick(R.id.btn_test_enum_with_switchcase)public void onViewEnumWithSwitchCaseClicked() {EnumType enumType = EnumType.type1;testEnum(enumType);}private void testEnum(EnumType type) {switch (type) {case EnumType.type1:Log.e("type1:", type.getType());break;case EnumType.type2:Log.e("type2:", type.getType());break;case EnumType.type3:Log.e("type3:", type.getType());break;default:break;}}
错误提示如下所示:An enum switch case label must be the unqualified name of an enumeration constant
根据错误提示的意思,枚举类型和switch case一起使用时一定不要限定枚举常量值的常量,也就是它的类型。
对代码做下修改:
private void testEnum(EnumType type) {switch (type) {case type1:Log.e("type1:", type.getType());break;case type2:Log.e("type2:", type.getType());break;case type3:Log.e("type3:", type.getType());break;default:break;}}
好了,修改完成。