作者darkk6 (Mr. Pan)
看板java
标题Re: [WTF ] 2 + 2 = 5
时间Tue Jun 3 12:47:07 2014
1F:→ sbrhsieh:不懂darkk6 的意思 06/03 11:50
2F:→ sbrhsieh:若我没误解,那你有能力变更 final field 的值。06/03 11:59
3F:→ sbrhsieh: 要06/03 12:00
在不考虑 Security 的问题下,确实有方法 access final field.
IntegerCache 的 low , high , cache 都是 static final
要改变还是可以做点 tricky 的方式去修改,刚刚写了一个范例如下
http://ideone.com/XO1zGU
原本 IntegerCache 的范围是 -128~127 , 因此 129 不在范围内
这个例子中,我把 cache 范围扩增到 -128~1000 , 接着把
129 的 cache 值改为 5 (其实可以在第一个 trick 就处理,但我分开写)
PS : 其实重点就是把 Field 的 final 拿掉啦~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.60.161.211
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1401770830.A.048.html
※ 编辑: darkk6 (210.60.161.211), 06/03/2014 12:54:54