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"; }
[Advertisement]
BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!