code: public static <S extends Solution<?>> void weightedProduct(List<S> solutionsList, double[] weights) {
      for (S solution : solutionsList) {
        double product = Math.pow(solution.getObjective(0), weights[0]);
        for (int i = 1; i < solution.getNumberOfObjectives(); i++) {
          product *= Math.pow(solution.getObjective(i), weights[i]);
        }
        setScalarizationValue(solution, product);
      }
    }
docs: Objectives are exponentiated by a positive weight and afterwards
  multiplied.
  
  @param solutionsList A list of solutions.
  @param weights       Weights by objectives are exponentiated