当签名中的类的可见性不如成员本身的可见性时,报告字段或方法签名中的类的用法。
虽然是合法的 Java,但这样的成员在可见性范围之外是无用的。
示例:
- 返回
private
内部 class
的 public
方法。
- 类型为 package-local
class
的 protected
字段。
在 Java 9 中,模块可能会将其包排除在导出之外来隐藏某些类。
因此,如果导出的 API 的签名包含非导出类,这样的 API 在模块之外就是无用的。
配置检查:
- 使用模块的 API 公开未导出的类 (Java 9+) 选项,以报告公开未导出类的模块 API。
注意,项目或模块的语言级别为 9 级或更高级别时,该选项才有效。
- 使用 Public API 公开不可访问的类选项,以报告公开不可访问类的 public API。
- 使用 Package-local API 公开 private 类选项,以报告公开
private
类的 package-local API。