واجهة RandomGenerator
استخدم واجهة RandomGenerator لاختيار خوارزميات أرقام عشوائية بالاسم دون الارتباط بفئة محددة.
مقارنة الكود
✕ 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();
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
مستقل عن الخوارزمية
اختر أفضل خوارزمية RNG بالاسم دون تغيير بنية الكود.
خوارزميات أفضل
الوصول إلى مولّدات LXM الحديثة ذات الخصائص الإحصائية المتفوقة.
واجهة برمجية موحّدة
واجهة واحدة تغطي Random و ThreadLocalRandom و SplittableRandom والمزيد.
الأسلوب القديم
new Random() / ThreadLocalRandom
الأسلوب الحديث
مصنع RandomGenerator
منذ JDK
17
الصعوبة
متوسط
دعم JDK
واجهة RandomGenerator
متاح
متاح منذ JDK 17 (سبتمبر 2021، JEP 356).
كيف يعمل
قدّم JDK 17 الـ RandomGenerator كواجهة مشتركة لجميع تطبيقات RNG. بدلاً من ترميز new Random() أو ThreadLocalRandom يمكنك اختيار الخوارزميات بالاسم عبر مصنع مما يُسهّل التبديل بين الخوارزميات المحسَّنة لحالات استخدام مختلفة.
توثيق ذو صلة