Everyone knows that "Magic Numbers" are bad, Bad, BAD! Take, for example, dividing something into quarters. Because including the literal "4" in your code would be a Magic Number, many developers agree that it's best to define a constant named "FOUR", and then use that constant instead. Makes sense, right?

Wrong! The problem with using "FOUR" is that, like "4", it's a Magic Constant. While not nearly as bad as Magic Numbers, Magic Constants certainly aren't elegant. Fortunately, Allen's colleague has provided us all with a valuable lesson the proper use of Magic and Non-Magic constants. Read it, and learn.

public class Constants {

    ...

    public static final int FOUR = 4;
    public static final int THREE = 3;

    public static final int INTEGER_FOUR = 4;
    public static final int INTEGER_FIVE = 5;
    public static final int INTEGER_ONE = 1;
    public static final int LENGTH_FOUR = 4;
    public static final int LENGTH_FIVE = 5;
    public static final int LENGTH_SEVEN = 7;
    public static final int LENGTH_EIGHT = 8;
    public static final int LENGTH_NINE = 9;
    public static final int LENGTH_ELEVEN = 11;
    public static final int LENGTH_TWELVE = 12;
    public static final int LENGTH_EIGHTEEN = 18;
    public static final int LENGTH_FIFTEEN = 15;
    public static final int ONE = 1;
    public static final int INTEGER_FIVE = 5;
    public static final int INTEGER_ONE = 1;
    public static final int PLUS_ONE = 1;
    public static final int INTEGER_THREE = 3;

    public static final Long LONG_VALUE_TEN = Long.valueOf(10);
    public static final Long LONG_VALUE_ZEARO = Long.valueOf(0);

    public static final BigDecimal BIGDECIMAL_ZERO = new BigDecimal(0);
    public static final BigDecimal BIGDECIMAL_ONE = new BigDecimal(1);

    public static final BigDecimal NEGATIVE_NUMBER_ONE = new BigDecimal(-1);

    public static final int COMPARE_RESULT_ZERO = 0 ;
    public static final int COMPARE_RESULT_ONE = 1 ;
    public static final int COMPARE_RESULT_NEGATIVE = -1 ;

    ...

    public static final String NINE_STRING = "9";
    public static final String ONE_STRING = "9";

}