據我所知,publicLookup()
比公共方法的lookup()
更快,我想利用它。如果我在Method
上使用MethodHandles.publicLookup().unreflect(Method)
這不是天生公開的,但我已撥打setAccessible(true)
,它會起作用嗎?結合MethodHandles.publicLookup()與Method.setAccessible(true)
3
A
回答
4
由於其上setAccessible(true)
已成功調用每個人都可以稱爲Method
,它可以使用MethodHandles.publicLookup()
就像任何其他Lookup
對象所做的未反映。
畢竟,它是使用MethodHandle
s訪問覆蓋的唯一方式,因爲java.lang.invoke
本身不提供任何訪問覆蓋功能。
以下演示使用Field
而非Method
但令人印象深刻的結果:
Field m = String.class.getDeclaredField("value");
m.setAccessible(true);
MethodHandle mh = MethodHandles.publicLookup().unreflectGetter(m);
char[] ch = (char[])mh.invoke("hello");
Arrays.fill(ch, '*');
System.out.println("hello");
+0
啊,可惜我不需要運行它來了解輸出,因爲我之前已經搞混了。然而,謝謝你的答案 – DziNeIT 2014-09-19 19:26:33
相關問題
- 1. includeViewParams = true不能與遍歷集合的複合組件結合使用
- 2. Bacon.js將屬性與.and()結合起來只有在prop === true
- 3. 可以結合ValidationSummary(true)和ModelState.AddError(「field」,「error」)?
- 4. $ locationProvider.html5Mode(true)不能與tomcat配合使用
- 5. 與結合
- 6. Knockoutjs與結合
- 7. Silverlight。與結合
- 8. Knockout.js結合與@
- 9. 與結合
- 10. 與.NET結合
- 11. 結合結構與tolua ++
- 12. 結合StateT與InputT
- 13. 結合XAML與C#
- 14. WPF結合與GridViewColumn
- 15. 結合UIAlertViewStyleLoginAndPasswordInput與UIKeyboardTypeEmailAddress
- 16. 結合點與GGPLOT2
- 17. JUpload與codeigniter結合
- 18. MSG_WAITALL與SO_RCVTIMEO結合?
- 19. JavaScript與PHP結合?
- 20. 結合及與&&殼
- 21. Control.Hide()與Control.hidden = true
- 22. 的UIView與TRUE
- 23. 將Excel COUNTIFS與集合函數結合
- 24. SQL結合案例,並與
- 25. 結合VLOOKUP與小號
- 26. 結合PmWiki的與CMS
- 27. 結合的UITabBarController與UINavigationContoller
- 28. 結合SUMIF與VLOOKUP或IndexMatch
- 29. 將httpretty與pytest結合tmpdir
- 30. 結合角度與要求
爲什麼不嘗試一下,並找出? – 2014-09-19 17:27:54