解決Java 9 中的InaccessibleObjectException:無法使成員可存取
Java 9 中因Java 平台模組系統的嚴格封裝而出現嚴格封裝而出現,僅在某些條件下授予存取權限,例如公共可見性和包可匯出性。
原因和場景
此異常通常發生在以下情況:
解析案例 1:反射呼叫 JDK
As JDK 模組是不可變的,解決方案在於開啟封包進行反射的命令列標誌。例如,要解決異常:
java --add-opens java.base/java.lang=ALL-UNNAMED
解決案例2:對應用程式程式碼的反射
如果反射程式碼位於可編輯模組中,請考慮增強其模組描述符:
其他補救措施
Java 中僅在9 版本中,您可以使用以下命令停用封裝保護:
java --permit-illegal-access
注意: 由於安全隱患,應謹慎使用此標誌。有關模組配置和最佳實踐的更多詳細信息,請參閱連結的資源。
以上是如何解決Java 9的InaccessibleObjectException:反射和模組系統衝突?的詳細內容。更多資訊請關注PHP中文網其他相關文章!