Illegaler reflektierender Zugriff in Java 9: Eine detaillierte Untersuchung
Java 9 führte das Konzept des illegalen reflektierenden Zugriffs ein, das zahlreiche weitere auslöste So lösen Sie das Problem. Fragen zu dieser Fehlermeldung. Dieser Artikel befasst sich mit der Natur des illegalen reflektierenden Zugriffs, den Umständen, die Warnungen auslösen, und möglichen Lösungen.
Das Modulsystem in Java 9 führt das Konzept der Modularität #entspannende starke Kapselung ein, das der Schlüssel zum Verständnis des illegalen reflektierenden Zugriffs ist. Der Zugriff von Code in einem Modul auf anderen Modulcode und sichtbare Pakete wird streng kontrolliert. Allerdings kann die starke Kapselung von Modulen gelockert werden, um die Laufzeit von Java 9 zu verlängern.
Das Laufzeitsystem kann die folgenden Operationen bereitstellen:
Das Konzept des illegalen Zugriffs
Wenn die Reflection-API unter den folgenden Umständen erfolgreich aufgerufen wird, wird ein „illegaler“ Reflection-Zugriff ausgelöst:
Mechanismus zum Auslösen von Warnungen
Die Lockerung der Kapselung in Java 9 kann zur Kompilierungszeit über die neue Startup-Option --illegal-access gesteuert werden. Standardmäßig ist diese Option auf Zulassen eingestellt. In diesem Modus löst der erste reflektierte Zugriffsvorgang auf ein solches Paket eine Warnung aus, es werden jedoch keine weiteren Warnungen ausgegeben. Diese Warnung enthält Informationen zum Aktivieren weiterer Warnungen.
Konfigurationsoptionen
Die Option --illegal-access kann in den folgenden Modi konfiguriert werden:
Debugging- und Reparaturempfehlungen
Beispiel für eine Warnmeldung
Eine Warnmeldung, die ausgegeben wird, wenn ein illegaler reflektiver Zugriffsvorgang erkannt wird, hat das folgende Format:
WARNING: Illegal reflective access by $PERPETRATOR to $VICTIM
wobei:
Vorsichtsmaßnahmen
Um solche Warnungen zu vermeiden und zukünftige Sicherheit zu gewährleisten, müssen Sie sicherstellen, dass Module diese illegalen reflektierenden Zugriffe nicht durchführen.
Das obige ist der detaillierte Inhalt vonWie kann ich Warnungen zu „illegalem reflektierendem Zugriff' in Java 9 beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!