Итак, я просматривал исходный код Math.java
и обнаружил, что существует класс-держатель, созданный для хранения randomNumberGenerator
статическая переменная. Вот соответствующий фрагмент кода.
public final class Math {
// other methods.
public static double random() {
return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
}
private static final class RandomNumberGeneratorHolder {
static final Random randomNumberGenerator = new Random();
}
}
ИМО, мы могли бы просто объявить randomNumberGenerator
как private static final
внутри самого класса Math
.
Мой вопрос: есть ли какое-либо преимущество в создании для этого отдельного класса держателя? Или это просто личные предпочтения.