Java 17 krijgt een betere implementatie voor nummergenerators. In de development kit zit een voorstel voor nieuwe generators, en een interface waarin nieuwe generators via een api kunnen worden aangesproken.
Het gaat om voorstel voor een aanpassing van de OpenJDK 17, de Java Development Kit. Daarin staat dat de makers een nieuwe interface en nieuwe implementaties willen voor pseudorandom number generators, of PRNGs. Het doel daarvan is om het makkelijker te maken voor ontwikkelaars om verschillende PRNG-algoritmes in applicaties in te kunnen bouwen, en om code duidelijker en kleiner te maken door duplicaties te verwijderen. De makers zeggen dat het niet de bedoeling is om veel nieuwe generators in Java te implementeren, maar om een framework te maken waarmee dat makkelijker kan.
De legacy-systemen Random
, ThreadLocalRandom
en SplittableRandom
worden toegevoegd aan JDK 17 omdat die 'veelvuldig gebruikt worden in andere programmeertalen'. Volgens de makers hebben die drie classes overlappende kenmerken waarvoor het in sommige gevallen makkelijker is om die via een interface aan te passen.
Die nieuwe interface heet RandomGenerator
. Daarin zit een algemene api waarmee bestaande en nieuwe nummergenerators kunnen worden toegevoegd en beheerd. Ook voegen de makers vier nieuwe PRNGs toe aan die interface. Dat zijn SplittableRandomGenerator
, JumpableRandomGenerator
, LeapableRandomGenerator
en ArbitrarilyJumpableRandomGenerator
.
De Java Development Kit 17 komt pas in september uit. Het gaat dan om een lts-release die drie jaar ondersteuning krijgt. In maart komt eerst JDK 16 uit, maar die versie krijgt maar ondersteuning voor een half jaar.