code: final Type capture() {
      Type superclass = getClass().getGenericSuperclass();
      checkArgument(superclass instanceof ParameterizedType, "%s isn't parameterized", superclass);
      return ((ParameterizedType) superclass).getActualTypeArguments()[0];
    }
docs: Returns the captured type.