Just a little code quiz, can you spot the design problem with this API? Bonus points for come up with a plausible reason as to what the programmer was distracted with whilst working on this.
/** Load an integer from system properties, validating in a range */ public static int getProperty(String name, int defValue, int min, int max){ try { int value = Integer.getInteger(name, defValue).intValue(); return Math.max(min, Math.min(max, value)); } catch(NumberFormatException e) { return defValue; } } /** Load an long from system properties, validating in a range */ public static long getProperty(String name, long min, long max, long defValue){ try { long value = Long.getLong(name, defValue).longValue(); return Math.max(min, Math.min(max, value)); } catch(NumberFormatException e) { return defValue; } }