当前位置:   article > 正文

java switch语句 枚举_Java:不能在switch语句中使用泛型枚举

switch可以用在泛型吗

我有两个枚举类型(并希望用户能够添加自己的).

enum PhoneSensor { A, B };

enum RobotSensor { A, C };

如果我不在使用枚举类型的方法中使用枚举属性,这可以正常工作.

public > void registerSensor(E e) {

System.out.print(e);

}

但是如果我想将模板E识别为枚举(用于此处的交换机),我会收到错误"无法启用类型E的值".(在Eclipse中,开关(e)中的'e'带下划线的红色)

public > void registerSensor(EnumSet eSet) {

for (E e : eSet) {

System.out.print("value is ");

// Cannot switch on a value of type E.

// Only convertible int values or enum variables are permitted

switch(e) {

case PhoneSensor.A:

System.out.print(e);

default:

return;

}

}

}

我对删除有一点了解,它在编译时消除了有关模板的任何信息,所以这就是问题所在.但是我尝试传递Class clazz或实现一个接口并没有奏效.什么是一个很好的解决方案?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/729054
推荐阅读
相关标签
  

闽ICP备14008679号