CommonUtils
"Right around Christmas time," Earl B writes, "I inherited a lovely Java project that contained a library class named CommonUtils. Wandering inside, I found something quite strange in the middle of quite a few other weird things."
public static Integer getIntegerValueOf(int value) { Integer result; if ( value == 0 ) { result = DomainConstants.INTEGER_0; } else if ( value == 1 ) { result = DomainConstants.INTEGER_1; } else { result = new Integer(value); } return result; }
"DomainConstants is an Interface with a list of static Objects," added Earl, "I'll let you guess what DomainConstants.INTEGER_0 and DomainConstants.INTEGER_1 are."
The Inadequate java.lang.*
"After recently joining a new application team," Justin M wrote, "I've come to realize that original developers (some of whom still work on the project) aren't the biggest fan of the classes in java.lang.*"
"Now don't get me wrong, they obviously use them, but primarily to develop their own, 'better' versions. Take, for example, IntegerType, their version of the Integer.
package com.initrodeGlobal; public class IntegerType { Integer i; public IntegerType(int value) { i = new Integer(value); } public IntegerType(String s) { i = new Integer(s); } public static Integer decode(String nm) throws NumberFormatException { return Integer.decode(nm); } public static Integer getInteger(String nm) { return Integer.getInteger(nm); } public static Integer getInteger(String nm, int val) { return Integer.getInteger(nm, val); } public static Integer getInteger(String nm, Integer val) { return Integer.getInteger(nm, val); } public static int parseInt(String s) throws NumberFormatException { return Integer.parseInt(s); } public static int parseInt(String s, int radix) throws NumberFormatException { return Integer.parseInt(s, radix); } public static String toBinaryString(int i) { return Integer.toBinaryString(i); } public static String toHexString(int i) { return Integer.toHexString(i); } public static String toOctalString(int i) { return Integer.toOctalString(i); } public static String toString(int i) { return Integer.toString(i); } public static String toString(int i, int radix) { return Integer.toString(i, radix); } public static Integer valueOf(String s) throws NumberFormatException { return Integer.valueOf(s); } public static Integer valueOf(String s, int radix) throws NumberFormatException { return Integer.valueOf(s, radix); } public int compareTo(Object o) { return i.compareTo((Integer)o); } public int compareTo(Integer anotherInteger) { return i.compareTo(anotherInteger); } public byte byteValue() { return i.byteValue(); } public double doubleValue() { return i.doubleValue(); } public float floatValue() { return i.floatValue(); } public int intValue() { return i.intValue(); } public long longValue() { return i.longValue(); } public short shortValue() { return i.shortValue(); } public boolean equals(Object obj) { return i.equals(obj); } public int hashCode() { return i.hashCode(); } public String toString() { return i.toString(); } }