Je suis scripting Java en utilisant JRuby. En utilisant JRebel, je peux recharger automatiquement les classes Java modifiées dans la JVM JRuby sans redémarrer. Lorsque j'ajoute une nouvelle méthode Java, JRebel recharge automatiquement la classe. Mon problème est que je ne peux pas appeler cette nouvelle méthode directement. Puis-je demander à JRuby d'actualiser son cache de méthode pour la classe Java nouvellement rechargée? Ma seule solution consiste à appeler la nouvelle méthode de manière réfléchie en utilisant java_send.Comment dire à JRuby de recharger/rafraîchir une classe Java?
Exemple:
étape 1. Démarrez la session et irb java_import une classe Java (dire personne).
étape 2. Ajoutez une méthode getName à Person et compilez.
étape 3. Créez une instance de Person (p = Person.new). JRebel montrera qu'il a rechargé la classe Java.
étape 4. Résultats Appel de p.get_name dans un NoMethodError mais p.java_send (« getName ») appelle la méthode getName nouvellement mis en œuvre