Heim > Java > javaLernprogramm > InaccessibleObjectException von Java 9: ​​Wie kann die Fehlermeldung „{Member} konnte nicht zugänglich gemacht werden' behoben werden?

InaccessibleObjectException von Java 9: ​​Wie kann die Fehlermeldung „{Member} konnte nicht zugänglich gemacht werden' behoben werden?

DDD
Freigeben: 2025-01-03 07:58:39
Original
781 Leute haben es durchsucht

Java 9's InaccessibleObjectException: How to Resolve

Überwindung der InaccessibleObjectException von Java 9: ​​„Unable to Make {Member} Accessible“

Verstehen des Problems

Java 9 führt das Plattformmodulsystem ein, das die Kapselung durch Einschränkung des Zugriffs verbessert bestimmte Elemente. Wenn versucht wird, diese Einschränkungen zu umgehen, wird eine InaccessibleObjectException ausgelöst. Die Fehlermeldung gibt das Mitglied an, auf das zugegriffen wird, das Modul, das den Zugriff einschränkt, und das Modul, das versucht, darauf zuzugreifen.

Auflösen der Ausnahme

Die Lösung variiert je nach Szenario, das das Problem verursacht.

1. Reflection-Aufruf in JDK

Problem: Eine Bibliothek oder ein Framework verwendet Reflection, um auf Elemente innerhalb eines JDK-Moduls zuzugreifen.

Lösung: Verwendung Befehlszeilenflags zum Öffnen des spezifischen Pakets zur Reflexion.

java --add-opens {jdk-module}/{package}={accessing-module}
Nach dem Login kopieren

Für Beispiel:

java --add-opens java.base/java.lang=ALL-UNNAMED
Nach dem Login kopieren

2. Reflection Over Application Code

Problem: Reflection wird für den Zugriff auf Elemente innerhalb eines Anwendungsmoduls verwendet.

Lösung:Ändern Sie die Anwendung Der Moduldeskriptor, für den das Paket oder Modul geöffnet werden soll Zugriff.

Optionen:

  • Paket exportieren:

    • exportiert {Paket }
  • Exportieren Sie die Paket in ein bestimmtes Modul:

    • exportiert {Paket} nach {accessing-module}
  • Öffnen Sie das Paket:

    • öffnet {package}
  • Öffnen Sie das Paket für ein bestimmtes Modul:

    • öffnet {package} für {accessing-module }
  • Öffnen Sie das Ganze Modul:

    • offenes Modul {module-to-open} {...}

Die passende Auswahl hängt vom Level ab Zugang und Sichtbarkeit erforderlich.

Das obige ist der detaillierte Inhalt vonInaccessibleObjectException von Java 9: ​​Wie kann die Fehlermeldung „{Member} konnte nicht zugänglich gemacht werden' behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage