code: public static UnixPath getPath(boolean permitEmptyComponents, String first, String... more) {
      if (more.length == 0) {
        return getPath(permitEmptyComponents, first);
      }
      StringBuilder builder = new StringBuilder(first);
      for (int i = 0; i < more.length; i++) {
        String part = more[i];
        if (part.isEmpty()) {
          continue;
        } else if (isAbsoluteInternal(part)) {
          if (i == more.length - 1) {
            return new UnixPath(permitEmptyComponents, part);
          } else {
            builder.replace(0, builder.length(), part);
          }
        } else if (hasTrailingSeparatorInternal(builder)) {
          builder.append(part);
        } else {
          builder.append(SEPARATOR);
          builder.append(part);
        }
      }
      return new UnixPath(permitEmptyComponents, builder.toString());
    }
docs: Returns new path of {@code first} with {@code more} components resolved against it.
  
  @see #resolve(UnixPath)
  @see java.nio.file.FileSystem#getPath(String, String...)