Java


JAVA.CLASS.VIS.SFIELD : Static Field Too Visible (Java)

要旨

Visibility for a static, non-final field is too permissive. In consequence, the internal implementation of objects is accessible and modifiable from outside their class.

Only fields whose visibility is equal to, or more permissive than, the value specified for configuration parameter JAVA_ANALYSIS_FIELD_VISIBILITY are included in checks for this class. Fields whose visibility is more restrictive than the specified value cannot trigger warnings of this class.

プロパティ

クラス名 Static Field Too Visible (Java)
日本語クラス名 Static Field Too Visible (Java)
クラス分類 信頼性 (reliability)
ニーモニック JAVA.CLASS.VIS.SFIELD
カテゴリー
CWE CWE:487 Reliance on Package-level Scope
  CWE:608 Struts: Non-private Field in ActionForm Class
  CWE:766 Critical Data Element Declared Public
  CWE:1061 Insufficient Encapsulation
対応言語 Java で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Static Field Too Visible (Java)"

public class C {
  private int f1;
  protected int f2;
  int f3;
  public int f4;
  private final int f5 = 5;;
  protected final int f6 = 6;
  final int f7 = 7;
  public final int f8 = 8;
  private static int f9;
  protected static int f10;             /* "Static Field Too Visible" warning issued here
                                         * when JAVA_ANALYSIS_FIELD_VISIBILITY=PRIVATE
                                         */ 
  static int f11;                       /* "Static Field Too Visible" warning issued here
                                         * when JAVA_ANALYSIS_FIELD_VISIBILITY=PRIVATE
                                         */ 
  public static int f12;                /* "Static Field Too Visible" warning issued here
                                         * when JAVA_ANALYSIS_FIELD_VISIBILITY=PROTECTED (the default) or JAVA_ANALYSIS_FIELD_VISIBILITY=PRIVATE
                                         */ 
  private final static int f13 = 13;
  protected final static int f14 = 14;
  final static int f15 = 15;
  public final static int f16 = 16;
}

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。