关注
这个交换还挺难啊,要是在Integer缓存范围内,直接修改反射修改,会把缓存池中的Integer值都改了,要new Integer对象来改。参考代码: public static void swap(Integer a,Integer b) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
Field declaredField = Integer.class.getDeclaredField("value");
declaredField.setAccessible(true);
/**
* 错误写法
* int bVal=b.intValue();
* System.out.println("bVal:"+bTemp); // 2
* System.out.println("bVal->Integer->int:"+Integer.valueOf(bTemp).intValue()); // 1
* declaredField.set(a, bTemp); // bTemp装箱,取到缓存池中值为1的Integer(2)对象。a:1
*/
Integer bTemp=new Integer(b.intValue());
declaredField.set(b, a.intValue());
System.out.println("bVal:"+bTemp);
System.out.println("bVal->Integer->int:"+Integer.valueOf(bTemp).intValue());
declaredField.set(a, bTemp);
}
查看原帖
1 1
相关推荐
牛客热帖
更多
正在热议
更多
# 找工作能把i人逼成什么样 #
13498次浏览 166人参与
# 上班到公司第一件事做什么? #
108674次浏览 731人参与
# 你今年做了几份实习? #
8914次浏览 137人参与
# 工作两年想退休了 #
202620次浏览 1790人参与
# 你开始找寒假实习了吗? #
14980次浏览 207人参与
# 0经验如何找实习? #
25713次浏览 440人参与
# 面试尴尬现场 #
204560次浏览 819人参与
# 大厂面试初体验 #
83296次浏览 381人参与
# 大学最后一个寒假,我想…… #
71863次浏览 723人参与
# 大家每天通勤多久? #
64230次浏览 413人参与
# 金融财经春招备战日记 #
43757次浏览 216人参与
# 你找工作经历过哪些骗局? #
9210次浏览 140人参与
# 央国企投递记录 #
165906次浏览 1622人参与
# 产品人求职现状 #
297929次浏览 2360人参与
# 阿里云工作体验 #
36827次浏览 119人参与
# 字节出了豆包coding模型 #
6773次浏览 59人参与
# 机械人值得去的半导体企业 #
32903次浏览 183人参与
# 一起聊华为 #
168057次浏览 819人参与
# 25年找工作是什么难度? #
15410次浏览 153人参与
# 新凯来求职进展汇总 #
63946次浏览 170人参与
海康威视公司福利 1407人发布