code: public Object get(Object objKey) {
          if (objKey == null) {
              throw new IllegalArgumentException("The key parameter must not be null.");
          }
          final String key = objKey.toString();
          final int pos = key.lastIndexOf(INDEXED_DELIM);
          if (pos > 0) {
              final int endPos = key.lastIndexOf(INDEXED_DELIM2);
              if (pos >= endPos) {
                  throw new IllegalArgumentException("The key(" + key + ") is invalid.");
              }
              final int index = Integer.valueOf(key.substring(pos + 1, endPos));
              final String name = key.substring(0, pos);
              final Object value;
              final Class<?> type;
              if (name.indexOf(INDEXED_DELIM) > 0) {
                  value = get(name);
                  type = value.getClass();
              } else {
                  PropertyDesc pd = beanDesc.getPropertyDesc(name);
                  if (!pd.isReadable()) {
                      return null;
                  }
                  value = pd.getValue(bean);
                  if (value == null) {
                      return null;
                  }
                  type = pd.getPropertyType();
              }
              if (type.isArray()) {
                  return LaParamWrapperUtil.convert(Array.get(value, index));
              }
              if (List.class.isAssignableFrom(type)) {
                  return LaParamWrapperUtil.convert(((List<?>) value).get(index));
              }
              throw new IllegalStateException("Index property must be an array or a list.");
          }
          final PropertyDesc pd = beanDesc.getPropertyDesc(key);
          if (!pd.isReadable()) {
              return null;
          }
          return LaParamWrapperUtil.convert(pd.getValue(bean));
      }
docs: ==================