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

为何包私有类无法从嵌套包访问?测试注解权限疑问

包私有注解无法在嵌套包访问的原因

Java里的包私有权限(即没有显式public/protected/private修饰符的类/注解),仅允许同一个包内的代码访问,而嵌套包(比如com.myproject.test.it和com.myproject.test.it.foo)在Java中是完全独立的两个包——名称上的“嵌套”只是代码组织的逻辑结构,编译器和JVM不会将它们视为同一包的一部分,自然不存在权限继承关系。

拿你的场景举例:

  • BaseIT注解属于com.myproject.test.it包,包私有权限仅对该包下的类开放访问
  • FooIT属于com.myproject.test.it.foo包,这是一个和上层完全独立的包,因此没有权限访问BaseIT

如果想让注解能被嵌套包使用,有两个可行方向:

  • 将注解的访问修饰符改为public,若需要限制使用范围,可结合Java模块系统的导出规则,或用@VisibleForTesting这类标记标注预期使用场景
  • 调整测试类的包结构,把需要使用注解的测试类都放到和注解同一个包下,但这可能不符合你原本的规划

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:52:11