我想摆脱这些关于未经检查的转换和参数化的警告而不压制它们。
interface Switch {
void toggle();
}
enum A implements Switch {
a1,a2;
@Override public void toggle() {
state=!state;
}
boolean state;
}
enum B implements Switch {
b1,b2;
@Override public void toggle() {
state=!state;
}
boolean state;
}
public class Warnings {
public static void main(String[] args) {
Class<? extends Enum>[] enums=new Class[]{A.class,B.class};
for(Class<? extends Enum> clazz:enums)
try {
Enum s=Enum.valueOf(clazz,args[0]);
((Switch)s).toggle();
} catch(IllegalArgumentException eee) {}
}
}