android switch不能使用参数String,View等类的解决方法
基于方法:Object.hashCode();
hashCode()的原理:
hash值本身是一个散列码,简而言之就是每个Object都对应了一个hash值(int),所以hashcode的作用及时全局唯一标示;
在同一运行环境下,hashcode值是唯一的,这样就可以区分在类实例在物理上不是一样的对象
但是,例如
String obj_a="aaa";
String obj_b="aaa";
obj_a,obj_b是一样的,原因是java的字符串池优化的原因,每声明一个字符串,JVM就会先查找“字符串池”,看是否有相同的字符串,如果有将已有的对象引用返回,而不是新生成一个String对象,同理
String obj_a = new String("bbb");
String obj_b = new String("bbb");
也是同一个hashcode,总的来说equals相同的话,hashcode就应该相同
所以使用
switch(Object.hashcode());
就行了