code: public String toStringType(final Type type) {
          return TypeToStringUtils.toStringType(type, chooseContext(type).contextGenerics());
      }
docs: Useful for reporting or maybe logging. Resolves all generics and compose resulted type as string.
  <pre>{@code class A extends B<Long>;
  class B<T> {
  List<T> doSmth();
  }}</pre>
  Resolving parameters in type of root class:
  {@code type(B.class).toStringType(B.class.getMethod("doSmth").getGenericReturnType()) == "List<Long>"}
  <p>
  Check if type containing generics, belonging to different context in current hierarchy and
  automatically change context to properly resolve generics. Fails when it is impossible to correctly
  resolve generics (preventing incorrect usage).
  
  @param type to to get string of
  @return string representation for resolved type
  @throws WrongGenericsContextException if type contains generics not visible from current class