code: public static <T> T[] recoveredValueASArray(Class<T> type, String properties) throws ExecutionException {
  
          LOGGER.info(String.format("Recovered propeties [%s] as [%s]", properties, type));
          String[] stringParseProperties = properties.replaceAll("\\s+", "").replaceAll("\\[", "").replaceAll("]", "").split(",");
          T[] returnValue = null;
          if (isString(type)) {
              returnValue = (T[]) stringParseProperties;
          } else if (isBoolean(type)) {
              Boolean[] tempReturnValue = new Boolean[stringParseProperties.length];
              for (int i = 0; i < stringParseProperties.length; i++) {
                  tempReturnValue[i] = Boolean.parseBoolean(stringParseProperties[i]);
              }
              returnValue = (T[]) tempReturnValue;
          } else {
              String message = String.format("The type %s is not supported for conversion.", type);
              LOGGER.error(message);
              throw new ExecutionException(String.format(message));
          }
  
          if (LOGGER.isDebugEnabled()) {
              LOGGER.debug(String.format("The property as converted to %s", Arrays.deepToString(returnValue)));
          }
          return returnValue;
      }
docs: This method recovered the array of properties.
  
  @param properties the string which represents the properties to recovered.
  @param type       the type to recovered.
  @return the properties.
  @throws ExecutionException if an error happens.