code: public Object convertListTo(String exp, Map<String, ? extends Object> contextMap, LaContainer container, Class<?> resultType,
              List<Object> challengeList) { // not null
          if (int[].class.isAssignableFrom(resultType)) { // e.g. (int[])[1,2]
              final int[] intAry = new int[challengeList.size()];
              int index = 0;
              try {
                  for (Object element : challengeList) {
                      if (element == null) {
                          throw new IllegalStateException("Cannot handle null element in array: index=" + index);
                      }
                      intAry[index] = Integer.parseInt(element.toString());
                      ++index;
                  }
              } catch (RuntimeException e) {
                  throwExpressionCannotConvertException(exp, contextMap, container, resultType, index, e);
              }
              return intAry;
          } else if (String[].class.isAssignableFrom(resultType)) { // e.g. (String[])["sea","land"]
              final String[] strAry = new String[challengeList.size()];
              int index = 0;
              try {
                  for (Object element : challengeList) {
                      if (element == null) {
                          throw new IllegalStateException("Cannot handle null element in array: index=" + index);
                      }
                      if (!(element instanceof String)) {
                          throw new IllegalStateException("Non-string element in array: index=" + index);
                      }
                      strAry[index] = (String) element;
                      ++index;
                  }
              } catch (RuntimeException e) {
                  throwExpressionCannotConvertException(exp, contextMap, container, resultType, index, e);
              }
              return strAry;
          } else if (Set.class.isAssignableFrom(resultType)) { // e.g. (Set)["sea","land"]
              return new LinkedHashSet<Object>(challengeList);
          } else if (MarkedMap.class.isAssignableFrom(resultType)) { // e.g. {"sea":"land"} as [{"sea":"land"}]
              @SuppressWarnings("unchecked")
              final Map<Object, Object> wrappedMap = (Map<Object, Object>) challengeList.get(0);
              return new LinkedHashMap<Object, Object>(wrappedMap); // convert to normal map
          } else { // e.g. [1,2]
              return challengeList;
          }
      }
docs: ============