You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java模块中Jackson Databind无法访问Weapon类的问题求助

解决Java 11模块系统下Jackson反序列化的InaccessibleObjectException问题

问题根源

你遇到的InaccessibleObjectException是Java 9+模块系统的访问控制机制导致的:你的模块Milestone1没有将包含Weapon、Health类的Store包显式导出给com.fasterxml.jackson.databind模块,Jackson无法通过反射访问这些类。

解决步骤

  1. 找到项目根目录下的module-info.java文件(如果没有,需要手动创建,这是Java模块系统的核心配置文件)
  2. 修改模块导出声明,将Store包定向导出给com.fasterxml.jackson.databind:
    module Milestone1 {
        // 仅允许jackson的databind模块访问Store包
        exports Store to com.fasterxml.jackson.databind;
        
        // 如果还有其他需要Jackson访问的包,同理添加
        // exports Other.Package to com.fasterxml.jackson.databind;
        
        // 声明对jackson模块的依赖
        requires com.fasterxml.jackson.databind;
    }
    
  3. 如果Weapon、Health类分散在多个包中,要把所有相关包都按上述方式导出给com.fasterxml.jackson.databind。

补充说明

  • 如果课程项目无需严格的模块隔离,也可以直接导出包给所有模块:
    exports Store;
    
  • 确保你使用的Jackson版本(databind、core、annotations)为2.9及以上,这些版本对Java模块系统有完善支持。

内容的提问来源于stack exchange,提问作者GernoBre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:52:09