フィールドまたはメソッドのシグネチャー内のクラスで、クラスの可視性がそのクラスを使用するメンバーよりも低くなっているものの使用箇所を報告します。
このようなメンバーは Java では有効ですが、参照しているクラス型の可視範囲外では使用できません。
例:
public class Parent {
public Child getChild() {
return new Child();
}
private class Child {}
}
また、Java 9 以降ではパッケージをエクスポートしないことで、あるモジュールのクラスの一部を他のモジュールから非表示にできます。
ただし、エクスポートされた API の一部になっているメンバーがそのシグネチャーでエクスポートされていないクラスを参照している場合、このようなメンバーはモジュール外で使用できません。
インスペクションの構成:
- Use the Report non-exported classes exposed in module API (Java 9+) option to report module API members
that expose non-exported classes.
Note that the language level of the project or module needs to be 9 or higher for this option.
- より可視範囲が小さいクラスを公開している public メンバーを報告するには、「公開 API で公開されているアクセスできないクラスを報告する」オプションを使用します。
private クラスを公開しているパッケージローカルのメンバーについて報告するには、「パッケージローカル API で公開されている private クラスを報告する」オプションを使用します。