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(); }
}