Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะทำให้องค์ประกอบของอาร์เรย์ไม่เปลี่ยนรูปใน Java ได้อย่างไร?


ไม่ คุณไม่สามารถทำให้องค์ประกอบของอาร์เรย์ไม่เปลี่ยนรูปได้

แต่ unmodifiableList() วิธีการของ java.util.Collections คลาสยอมรับวัตถุของอินเทอร์เฟซรายการ (วัตถุของการนำคลาสไปใช้) และส่งคืนรูปแบบที่ไม่สามารถแก้ไขได้ของวัตถุที่กำหนด ผู้ใช้มีสิทธิ์เข้าถึงรายการที่ได้รับแบบอ่านอย่างเดียวเท่านั้น

และ asList() วิธีการของ ArrayList class ยอมรับอาร์เรย์และส่งกลับรายการวัตถุ

ดังนั้นการแปลงอาร์เรย์ที่ไม่เปลี่ยนรูป -

  • รับอาร์เรย์ที่ต้องการ

  • แปลงเป็นวัตถุรายการโดยใช้ asList() วิธีการ

  • ส่งรายการที่ได้รับเป็นพารามิเตอร์ไปยัง unmodifiableList() วิธีการ

ตัวอย่าง

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class UnmodifiableExample {
   public static void main(String args[]) {
      //Creating a string array
      String strArray[] = {"Raju", "Rama", "Rahman", "Rachel", "Ranbhir", "Rangan"};
      //Converting the string array to list object
      List<String> list = Arrays.asList(strArray);
      //Converting the List object to immutable
      List<String> immutable = Collections.unmodifiableList(list); System.out.println(immutable);
      immutable.add("komala");
   }
}

ผลลัพธ์

[Raju, Rama, Rahman, Rachel, Ranbhir, Rangan]
Exception in thread "main" java.lang.UnsupportedOperationException
   at java.util.Collections$UnmodifiableCollection.add(Unknown Source)
   at September19.UnmodifiableExample.main(UnmodifiableExample.java:19)