Re: [WTF ] 2 + 2 = 5

楼主: darkk6 (Mr. Pan)   2014-06-03 12:47:07
→ sbrhsieh:不懂darkk6 的意思 06/03 11:50
→ sbrhsieh:若我没误解,那你有能力变更 final field 的值。 06/03 11:59
→ 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 拿掉啦~

Links booklink

Contact Us: admin [ a t ] ucptt.com