code: public static <T> List<T> getAt(List<T> self, Collection indices) {
          List<T> answer = new ArrayList<T>(indices.size());
          for (Object value : indices) {
              if (value instanceof Range || value instanceof Collection) {
                  answer.addAll((List<T>)InvokerHelper.invokeMethod(self, "getAt", value));
              } else {
                  int idx = DefaultTypeTransformation.intUnbox(value);
                  answer.add(getAt(self, idx));
              }
          }
          return answer;
      }
docs: Select a List of items from a List using a Collection to
  identify the indices to be selected.
  <pre class="groovyTestCase">def list = [true, 1, 3.4, false]
  assert list[1,0,2] == [1, true, 3.4]</pre>
  
  @param self    a List
  @param indices a Collection of indices
  @return a new list of the values at the given indices
  @since 1.0