f1220203087 2024-04-01 20:01 采纳率: 0%
浏览 18

idea中为什么不同包中同样是public类却访问不了?

如图下Bookservice类中访问Book类其中Book类是public修饰的但是还是报错

img

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-01 20:01
    关注

    引自免费微信小程序:皆我百晓生

    好的,让我详细解答您的问题。

    在Java中,由于库文件中同一包中的公共类在同一作用域中可以互相访问,这是因为在Java中,我们通过import语句将类导入到当前包中。这样就可以让类在同一个作用域内互相访问。

    但是,在读取库文件时,如果作用域不同,那么这个公共类可能就不可以直接被读取。例如,如果你有一个包下的库文件叫做book_service.js,并且在这个包下有一个名为Book的服务类,那么在使用book_service.js中的库文件时,你需要使用book_service.js所在的包的名字。

    例如,如果你在主目录下的book_service.js中使用了BookService类,那么在其他任何目录下的库文件中也必须使用相同的包名字。如果你的包结构是这样的:app -> app->books -> book_service.js -> book_service.js -> package_name -> books,则所有其他的库文件都应该使用同样的包名,否则可能会出现问题。

    解决这个问题的一种方法是提供一个包名作为公共类的别名。例如,如果你的包名是app,那么可以给BookService类提供别名bookService。

    另一种方法是修改库文件中的导入语句,使它指向不同的包。例如,如果你的包名是app,那么可以在库文件的顶部添加一个import语句,指向前一个包的名字。然后,你的其他库文件都可以根据前一个包的名字导入相应的类。

    另外,如果你的包结构是多层嵌套的,那么可能需要创建一个新的包来进行引用,而不是使用当前包的名字。例如,如果你有三个子包,分别是app、books和book_service.js,那么可以在books包中创建一个新的包来引用book_service.js。

    总的来说,如果你需要在一个包下的库文件中引用另一个包下的库文件,你需要知道这两个包之间的关系,并且需要对库文件进行适当的修改。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月1日

悬赏问题

  • ¥60 Matlab联合CRUISE仿真编译dll文件报错
  • ¥15 脱敏项目合作,ner需求合作
  • ¥15 脱敏项目合作,ner需求合作
  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId