关注
这个交换还挺难啊,要是在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
相关推荐
牛客热帖
更多
正在热议
更多
# 实习简历求拷打 #
9357次浏览 108人参与
# 担心入职之后被发现很菜怎么办 #
265742次浏览 1129人参与
# 秋招被挂春招仍然能投的公司 #
5961次浏览 91人参与
# 投格力的你,拿到offer了吗? #
151976次浏览 812人参与
# 什么是优秀的实习经历 #
7647次浏览 201人参与
# 作业帮求职进展汇总 #
82295次浏览 542人参与
# 京东美团大战,你怎么看? #
157608次浏览 859人参与
# mt对你说过最有启发的一句话 #
33300次浏览 406人参与
# 为了找工作你花了哪些钱? #
74743次浏览 359人参与
# 机械人晒出你的简历 #
146351次浏览 874人参与
# 摸鱼被leader发现了怎么办 #
99405次浏览 635人参与
# 考研失败就一定是坏事吗? #
200219次浏览 1366人参与
# 秋招特别不鸣谢 #
14873次浏览 172人参与
# 选实习,你更看重哪方面? #
13069次浏览 212人参与
# 第一次面试 #
1035977次浏览 13682人参与
# 金融财会交流会 #
128237次浏览 441人参与
# 今年秋招你收到了多少封邮件? #
17426次浏览 219人参与
# 你觉得多少薪资算SSP? #
120387次浏览 425人参与
# 机械/制造每日一题 #
80158次浏览 1411人参与
# 实习教会我的事 #
46434次浏览 352人参与
