Maison >Java >javaDidacticiel >Comment résoudre l'exception InaccessibleObjectException de Java 9 : conflits de réflexion et de système de modules ?
Résolution de l'exception InaccessibleObject dans Java 9 : impossible de rendre les membres accessibles
L'exception InaccessibleObjectException survient dans Java 9 en raison de l'encapsulation stricte du système de modules de plate-forme Java , accordant l'accès uniquement sous certaines conditions telles que la visibilité publique et le forfait exportabilité.
Causes et scénarios
Cette exception se produit généralement lorsque :
Résolution Cas 1 : Appel réfléchissant dans JDK
Comme les modules JDK sont immuables, la solution réside dans les indicateurs de ligne de commande qui ouvrent les packages pour réflexion. Par exemple, pour résoudre l'exception :
java --add-opens java.base/java.lang=ALL-UNNAMED
Résolution du cas 2 : réflexion sur le code d'application
Si le code réfléchissant se trouve dans un module modifiable, envisagez d'améliorer son descripteur du module :
Autres remèdes
Dans Java 9 uniquement, vous pouvez désactiver la protection par encapsulation avec :
java --permit-illegal-access
Remarque : Cet indicateur doit être utilisé avec parcimonie en raison des implications en matière de sécurité. Consultez les ressources liées pour plus de détails sur les configurations des modules et les meilleures pratiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!