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