Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The definitions of two constant expressions should be related if and only if the values they are expressing are also related.

Noncompliant Code Example

In this noncompliant example, OUT_STR_LEN must always be exactly two greater than IN_STR_LEN. However, this is not obvious from the definitions.

Code Block
bgColor#FFcccc

public static final int IN_STR_LEN = 18;
public static final int OUT_STR_LEN = 20;

Compliant Solution

Instead, the relationship between the two values should be represented in the definitions.

Code Block
bgColor#ccccff

public static final int IN_STR_LEN = 18;
public static final int OUT_STR_LEN = IN_STR_LEN + 2;

Noncompliant Code Example

In this noncompliant example, there appears to be an underlying relationship between the two constants, but there is not.

Code Block
bgColor#FFcccc

public static final int ADULT_AGE = 18;
public static final int ALCOHOL_AGE = ADULT_AGE + 3;

Compliant Solution

Instead, the definitions should reflect the lack of a relationship between the two constants.

Code Block
bgColor#ccccff

public static final int ADULT_AGE = 18;
public static final int ALCOHOL_AGE = 21;

Risk Assessment

References