Versions Compared

Key

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

The definitions of constant expressions should be related exactly when the values they express are also related.

Noncompliant Code Example

In this noncompliant code example, OUT_STR_LEN must always be exactly two greater than IN_STR_LEN. These definitions fail to reflect this requirement:

Code Block
bgColor#FFcccc
public static final int IN_STR_LEN = 18;
public static final int OUT_STR_LEN = 20;

Compliant Solution

In this compliant solution, the relationship between the two values is represented in the definitions:

Code Block
bgColor#ccccff

Risk Assessment

...

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 code example, there appears to be an underlying relationship between the two constants where none exists:

Code Block
bgColor#FFcccc
public static final int VOTING_AGE = 18;
public static final int ALCOHOL_AGE = VOTING_AGE + 3;

A programmer performing routine maintenance may modify the definition for VOTING_AGE but fail to recognize the resulting change in the definition for ALCOHOL_AGE.

Compliant Solution

In this compliant solution, the definitions reflect the independence of the two constants:

Code Block
bgColor#ccccff
public static final int VOTING_AGE = 18;
public static final int ALCOHOL_AGE = 21;

Bibliography

 

...

Image Added Image Added Image Added