Ungültiger reflektierender Zugriff
In Java 9 bezieht sich illegaler reflektierender Zugriff auf Situationen, in denen reflektierende APIs auf eine Weise verwendet werden, die gegen die Prinzipien der erweiterten Kapselung verstößt durch das Modulsystem eingeführt. Dies kann auftreten, wenn Code aus einem Modul versucht, ohne entsprechende Autorisierung auf private oder geschützte Mitglieder von Klassen in einem anderen Modul zuzugreifen.
Definition des illegalen reflektierenden Zugriffs
Illegaler reflektierender Zugriff ist definiert als jede reflektierende Operation, die:
Triggering Umstände
Unzulässiger reflektiver Zugriff wird ausgelöst, wenn:
Modulsystem und Relaxed Kapselung
Java 9 führte eine entspannte, starke Kapselungsregel ein, die bestimmte eingeschränkte Formen des reflektierenden Zugriffs ermöglicht. Insbesondere ermöglicht es dem Laufzeitsystem eines Moduls, Pakete im Modul zu öffnen, um in unbenannten Modulen zu codieren (d. h. Code im Klassenpfad). Wenn das Laufzeitsystem mit dieser Option aufgerufen wird und es gelingt, Reflektion dort zu verwenden, wo dies sonst fehlgeschlagen wäre, dann ist ein „illegaler“ Reflektionszugriff aufgetreten.
Warnmeldungen
Wenn ein illegaler reflektiver Zugriff auftritt, wird eine Warnmeldung im folgenden Format ausgegeben:
WARNUNG: Ungültiger reflektiver Zugriff durch $PERPETRATOR zu $VICTIM
wobei:
Das obige ist der detaillierte Inhalt vonWas ist illegaler reflektierender Zugriff in Java 9 und wie äußert er sich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!