English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عند الحاجة إلى إنشاء جسم غير قابل للتغيير لا يمكن تعديله بعد التشغيل، يمكن تعريف جسم غير قابل للتغيير. ليست هناك قواعد محددة لإنشاء جسم غير قابل للتغيير، ولكن الفكرة هي تقييد الوصول إلى مجالات الكائن بعد التشغيل.
Set هي واجهة في إطار التجميعات، وتمنع القيم المكررة.
عند إنشاء تجمع غير قابل للتغيير، يجب أن نتذكر النقاط التالية:
يجب ألا نتمكن من إضافة أو حذف العناصر منه.
يجب ألا نتمكن من إضافة القيم الفارغة إلى تجمع غير قابل للتغيير.
بمجرد إنشاء تجمع غير قابل للتغيير، لا يمكنك إضافة أو حذف العناصر منه، ولكن يمكنك تعديل العناصر التي تُخزن فيه.
تقبل طريقة of() في Java 9 قائمة العناصر، وتقوم بإنشاء وإعادة شكله غير القابل للتغيير. باستخدام هذه الطريقة، يمكنك استخدام Java لإنشاء تجمعات غير قابلة للتغيير.
import java.util.Set; public class ImmutableSet { public static void main(String args[]) { Set<Integer> set = Set.of(1458, 5548, 4587); System.out.println(set); } }
تقبل هذه الطريقة جسم التجميع كمعامل، وتعيد شكله غير القابل للتغيير.
تُستدعى هذه الطريقة بتقديم العنصر المطلوب والحصول على شكله غير القابل للتغيير.
في برنامج Java التالي، قمنا بإنشاء جسم HashSet، ونحن نحاول تحويله إلى جسم غير قابل للتغيير باستخدام طريقة unmodifiableSet()، ونحاول إضافة عناصر إليه.
لأننا قمنا بتعيينه غير قابل للتغيير، سيتم إنشاء استثناء في الوقت التشغيل.
import java.util.Collections; import java.util.HashSet; import java.util.Set; public class ImmutableSet { public static void main(String args[]) { Set<Integer> hashSet = new HashSet<Integer>(); //ملء HashSet hashSet.add(1124); hashSet.add(3654); hashSet.add(7854); hashSet.add(9945); System.out.println(hashSet); //تحويل set إلى عنصر غير قابل للتغيير Set immutable = Collections.unmodifiableSet(hashSet); immutable.add(4466); } }
نتيجة الخروج
[1124, 3654, 9945, 7854] استثناء في thread "main" java.lang.UnsupportedOperationException في at java.util.Collections$UnmodifiableCollection.add(Unknown Source) في at MyPackage.ImmutableSet.main(ImmutableSet.java:19)