克服Java 9 的InaccessibleObjectException:「無法使{Member} 可訪問」
理解問題
Java 9引入了Platform Module System,增強了封裝性透過限制對某些元素的存取。當嘗試繞過這些限制時,將引發 InaccessibleObjectException。錯誤訊息指定正在存取的成員、限制存取的模組以及嘗試存取該成員的模組。
解決異常解決方案因具體情況而異導致問題的場景。
1.反射呼叫 JDK問題:
函式庫或框架使用反射來存取 JDK 模組中的元素。
解決方案:java --add-opens {jdk-module}/{package}={accessing-module}
java --add-opens java.base/java.lang=ALL-UNNAMED
2。應用程式程式碼的反射
問題:
反射用於存取應用程式模組內的元素。
解決方案:修改應用程序用於打開包或模塊的模塊描述符
選項:由
開啟套件:
開啟{package} 到{accessing-module}
以上是Java 9 的 InaccessibleObjectException:如何解決「無法讓 {Member} 可存取」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!