Security Intermediário

Use a interface RandomGenerator para escolher algoritmos de números aleatórios pelo nome sem acoplamento a uma classe específica.

✕ Java 8
// Hard-coded to one algorithm
Random rng = new Random();
int value = rng.nextInt(100);

// Or thread-local, but still locked in
int value = ThreadLocalRandom.current()
    .nextInt(100);
✓ Java 17+
// Algorithm-agnostic via factory
var rng = RandomGenerator.of("L64X128MixRandom");
int value = rng.nextInt(100);

// Or get a splittable generator
var rng = RandomGeneratorFactory
    .of("L64X128MixRandom").create();
Viu um problema com este código? Nos avise.
🔧

Agnóstico de algoritmo

Escolha o melhor algoritmo de RNG pelo nome sem alterar a estrutura do código.

Algoritmos melhores

Acesso a geradores LXM modernos com propriedades estatísticas superiores.

🔗

API unificada

Uma interface cobre Random, ThreadLocalRandom, SplittableRandom e mais.

Abordagem Antiga
new Random() / ThreadLocalRandom
Abordagem Moderna
Factory RandomGenerator
Desde o JDK
17
Dificuldade
Intermediário
Interface RandomGenerator
Disponível

Disponível desde o JDK 17 (setembro de 2021, JEP 356).

O JDK 17 introduziu RandomGenerator como uma interface comum para todas as implementações de RNG. Em vez de fixar new Random() ou ThreadLocalRandom, você pode selecionar algoritmos pelo nome via factory, facilitando a troca entre algoritmos otimizados para diferentes casos de uso (velocidade, qualidade estatística, divisibilidade).

Compartilhar 𝕏 🦋 in