code: public static <T> List<List<T>> chop(T[] self, int... chopSizes) {
          return chop(Arrays.asList(self), chopSizes);
      }
docs: Chops the array into pieces, returning lists with sizes corresponding to the supplied chop sizes.
  If the array isn't large enough, truncated (possibly empty) pieces are returned.
  Using a chop size of -1 will cause that piece to contain all remaining items from the array.
  
  @param self      an Array to be chopped
  @param chopSizes the sizes for the returned pieces
  @return a list of lists chopping the original array elements into pieces determined by chopSizes
  @see #collate(Object[], int) to chop a list into pieces of a fixed size
  @since 2.5.2