Je comprends que publicLookup()
est plus rapide qu'un lookup()
pour les méthodes publiques, et j'aimerais l'utiliser. Si je devais utiliser MethodHandles.publicLookup().unreflect(Method)
sur un Method
qui n'est pas intrinsèquement public mais que j'ai appelé setAccessible(true)
, cela fonctionnerait-il?Combinaison de MethodHandles.publicLookup() avec Method.setAccessible (true)
Répondre
Depuis un Method
sur lequel setAccessible(true)
a été invoqué avec succès peut être appelé par tout le monde, il peut en irréfléchi utilisant le MethodHandles.publicLookup()
comme avec tout autre objet Lookup
. Après tout, c'est la seule façon d'utiliser le remplacement d'accès avec MethodHandle
car java.lang.invoke
n'offre aucune fonctionnalité de remplacement d'accès seul.
La démonstration suivante utilise un Field
plutôt qu'un Method
mais a un résultat impressionnant:
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");
ah, malheureusement, je n'ai pas besoin de lancer ça pour connaître la sortie, comme je l'ai déjà fait avec ça. cependant, merci pour la réponse – DziNeIT
- 1. Convertir quatre combinaison de Boolean en true/false - Avec l'instruction IF Else
- 2. Combinaison de jQuery avec SQL
- 3. Combinaison de jQuery 'plain' Valider avec discret
- 4. ember.js avec Ember.testing = true
- 5. Javascript avec combinaison PHP
- 6. Distinct en combinaison avec
- 7. PHP true & 'true' difference
- 8. Combinaison de PostgreSQL Enum avec un TypeDecorator
- 9. SOLR Différence entre indexed = true et stored = true
- 10. chemin de dessin avec combinaison de couleurs
- 11. SlickGrid (autoHeight: true) avec pagination
- 12. Webmethod avec EnableSession = true Attribut
- 13. WPF DropShadowEffect avec AllowsTransparency = "True"
- 14. Combinaison de filtres RSpec?
- 15. Boîte de dialogue WinForms avec TopMost = true
- 16. Définition de methodInfo.IsDefined() à true avec C#
- 17. Permutation/Combinaison avec plaques d'immatriculation
- 18. ravendb combinaison Recherche avec Où
- 19. Combinaison Inclut avec Entity Framework
- 20. Combinaison d'images avec PHP GD
- 21. La combinaison numpy avec sympy
- 22. La combinaison jQuery avec PHP
- 23. ActiveMq en combinaison avec Tomcat
- 24. Combinaison de tableaux avec calcul (somme)
- 25. Combinaison de deux chemins relatifs avec C#
- 26. Combinaison de deux événements avec jQuery
- 27. Combinaison de barplot seaborn avec matplotlib.plot()
- 28. Combinaison de Quartz.Net avec l'interface utilisateur
- 29. Combinaison de dplyr :: do() avec dplyr :: mutate?
- 30. Combinaison de deux images avec OpenCV
Pourquoi ne pas essayer et découvrir? –