在java中明确规定switch里面只允许使用int,char,和enum类型,但是我们实际编程过程中往往需要通过String来进行比较。可以将需要的String用enum类型做封装,便可以使用switch了。
下面是例子,从上层界面穿过一个Intent StringExtra,接收到以后,用switch做分支:
String TARGET="tag";@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tag = getIntent().getStringExtra(TARGET);}/** @category 使用枚举类型转值使用switch */public enum TAG {// TODO 这里添加各个Activity跳转过来是的TAG枚举OthersActivity, AddressBookActivity;public static TAG getAnimal(String tagStr) { return valueOf(tagStr); }}/** @category 根据TAG设置控件 */public void setView() { switch (TAG.getAnimal(tag)) { case OthersActivity: break; case AddressBookActivity: break; }}