private Object getTypedPropertyWithDefault(String key, Class theClass) {
private static Object getTypedPropertyWithDefault(String key, Class theClass, Configuration properties) {
    private Object getTypedPropertyWithDefault(String key, Class theClass) {        if (theClass.equals(Float.class)) {            return properties.getFloat(key, null);        } else if (theClass.equals(Integer.class)) {            return properties.getInteger(key, null);        } else if (theClass.equals(String.class)) {            return properties.getString(key, null);        } else if (theClass.equals(Double.class)) {            return properties.getDouble(key, null);        } else if (theClass.equals(Long.class)) {            return properties.getLong(key, null);        } else if (theClass.equals(Boolean.class)) {            return properties.getBoolean(key, null);        } else if (theClass.equals(List.class)) {            return properties.getList(key, null);        } else if (theClass.equals(BigInteger.class)) {            return properties.getBigInteger(key, null);        } else if (theClass.equals(BigDecimal.class)) {            return properties.getBigDecimal(key, null);        } else if (theClass.equals(Byte.class)) {            return properties.getByte(key, null);        } else if (theClass.equals(Short.class)) {            return properties.getShort(key, null);        }        return null;    }