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());

就行了

posted @ 2015-04-02 22:33  冰雪一舟  阅读(796)  评论(0编辑  收藏  举报