code: @SuppressWarnings("unchecked")
    public static <E> E get(Properties props, String key, E defaultValue, Type type) {
      String value = props.getProperty(key);
      if (value == null) {
        return defaultValue;
      } else {
        return (E) MetaClass.cast(value, type);
      }
    }
docs: Get the value of a property and automatically cast it to a specific type.
  This differs from the original Properties.getProperty() method in that you
  need to specify the desired type (e.g. Double.class) and the default value
  is an object of that type, i.e. a double 0.0 instead of the String "0.0".