docs: @SuppressWarnings("unchecked")
    public static <S extends Solution<?>> List<S> getInvertedFront(List<S> solutionSet) {
      List<S> invertedFront = new ArrayList<>(solutionSet.size());
      int numberOfObjectives = solutionSet.get(0).getNumberOfObjectives();
  
      for (int i = 0; i < solutionSet.size(); i++) {
        invertedFront.add(i, (S) solutionSet.get(i).copy());
        for (int j = 0; j < numberOfObjectives; j++) {
          if (solutionSet.get(i).getObjective(j) <= 1.0 &&
              solutionSet.get(i).getObjective(j) >= 0.0) {
            invertedFront.get(i).setObjective(j, 1.0 - solutionSet.get(i).getObjective(j));
          } else if (solutionSet.get(i).getObjective(j) > 1.0) {
            invertedFront.get(i).setObjective(j, 0.0);
          } else if (solutionSet.get(i).getObjective(j) < 0.0) {
            invertedFront.get(i).setObjective(j, 1.0);
          }
        }
      }
      return invertedFront;
    }