in commons-statistics-descriptive/src/main/java/org/apache/commons/statistics/descriptive/DoubleStatistics.java [562:615]
public StatisticResult getResult(Statistic statistic) {
// Locate the implementation.
// Statistics that wrap an underlying implementation are created in methods.
// The return argument should be a method reference and not an instance
// of DoubleStatistic. This ensures the statistic implementation cannot
// be updated with new values by casting the result and calling accept(double).
StatisticResult stat = null;
switch (statistic) {
case GEOMETRIC_MEAN:
stat = getGeometricMean();
break;
case KURTOSIS:
stat = getKurtosis();
break;
case MAX:
stat = max;
break;
case MEAN:
stat = getMean();
break;
case MIN:
stat = min;
break;
case PRODUCT:
stat = product;
break;
case SKEWNESS:
stat = getSkewness();
break;
case STANDARD_DEVIATION:
stat = getStandardDeviation();
break;
case SUM:
stat = sum;
break;
case SUM_OF_LOGS:
stat = sumOfLogs;
break;
case SUM_OF_SQUARES:
stat = sumOfSquares;
break;
case VARIANCE:
stat = getVariance();
break;
default:
break;
}
if (stat != null) {
return stat instanceof DoubleStatistic ?
((DoubleStatistic) stat)::getAsDouble :
stat;
}
throw new IllegalArgumentException(UNSUPPORTED_STATISTIC + statistic);
}