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

สร้าง UnsupportedOperationException ใน Java

UnsupportedOperationException เป็นคลาสย่อยของ RuntimeException โยนเมื่อ อ็อปเปอเรชันไม่รองรับ เป็นส่วนหนึ่งของ Java Collections Framework โยนโดยเกือบทุก Concrete Collections: List, Queue, Set, Map

ไวยากรณ์

public class UnsupportedOperationException extends RuntimeException

ตัวอย่าง: กรณีที่เกิด Exception


import java.util.*;

public class UnsupportedOperationExceptionTest {
    public static void main(String[] args) {
        List<Character> aList = new ArrayList<>();
        aList.add('a');
        aList.add('b');
        
        // สร้าง Unmodifiable View
        List<Character> newList = Collections.unmodifiableList(aList);
        
        // พยายามเพิ่ม - จะโยน Exception
        newList.add('c');
    }
}

ผลลัพธ์

Exception in thread "main" java.lang.UnsupportedOperationException
    at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055)
    at UnsupportedOperationExceptionTest.main(UnsupportedOperationExceptionTest.java:9)

วิธีหลีกเลี่ยง: ใช้ Object ของ Collection ต้นฉบับ (aList) สำหรับแก้ไข ไม่ใช่ View (newList) ที่ unmodifiable