code: private static void getParameterizedTypePackageNames(ParameterizedType type,
        Map<String, Class<?>> packageNames) {
      for (Type argumentType : type.getActualTypeArguments()) {
        getTypePackageNames(argumentType, packageNames);
      }
  
      getTypePackageNames(type.getRawType(), packageNames);
      Type ownerType = type.getOwnerType();
      if (ownerType != null) {
        getTypePackageNames(ownerType, packageNames);
      }
    }
docs: Visits parameterized types to collect package names.
  
  @see {@link #getTypePackageNames}.