একটি লিস্ট অনমডিফাইয়েবল বলা হয় যদি এর এলিমেন্টগুলো একবার ইনস্ট্যান্স তৈরি হলে যোগ করা, মুছে ফেলা বা রিপ্লেস করা যায় না। স্ট্যাটিক ফ্যাক্টরি মেথড: List.of() জাভা ৯-এ অনমডিফাইয়েবল লিস্ট তৈরির সুবিধাজনক পথ প্রদান করে।
List.of() মেথড ব্যবহার করে তৈরি লিস্ট ইনস্ট্যান্সের বৈশিষ্ট্যগুলো:
- ফ্যাক্টরি মেথড দ্বারা রিটার্নড লিস্ট প্রথাগতভাবে ইমিউটেবল। অর্থাৎ এলিমেন্টগুলো যোগ, মুছে ফেলা বা রিপ্লেস করা যায় না। লিস্টে যেকোনো মিউটেটর মেথড কল করলে UnsupportedOperationException হয়।
- যদি লিস্টের কন্টেইনড এলিমেন্টগুলো মিউটেবল হয়, তবে লিস্টের কন্টেন্ট পরিবর্তিত মনে হতে পারে।
- ইমিউটেবল লিস্ট স্ট্যাটিক ফ্যাক্টরি মেথড দিয়ে তৈরি হয় যা নাল এলিমেন্ট অনুমতি দেয় না। নাল এলিমেন্ট দিয়ে তৈরি করতে চাইলে NullPointerException হয়।
- অনমডিফাইয়েবল লিস্ট সিরিয়ালাইজেবল যদি সকল এলিমেন্ট সিরিয়ালাইজেবল হয়।
- লিস্টে এলিমেন্টের অর্ডার প্রদত্ত প্যারামিটার বা অ্যারের এলিমেন্টের অর্ডারের মতোই থাকে।
সিনট্যাক্স
List.of(E... elements)
উদাহরণ
import java.util.List;
public class UnmodifiedListTest {
public static void main(String[] args) {
List<String> countries = List.of("India", "Australia", "England", "Newzealand");
System.out.println("Countries - " + countries);
countries.add("Srilanka"); // throws UnsupportedOperationException
}
}
আউটপুট
Countries - [India, Australia, England, Newzealand] Exception in thread "main" java.lang.UnsupportedOperationException ...