Tôi có điều này:Làm thế nào để biết nếu List.remove() là "Không được hỗ trợ"?
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
public class ListTest {
public static void main(String[] args) {
String[] values = { "yes", "no"};
List<String> aa = Arrays.asList(values);
System.out.println(aa.getClass().getName());
aa.remove(0);
}
}
Nó cung cấp cho:
$ java ListTest
java.util.Arrays$ArrayList
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:161)
at ListTest.main(ListTest.java:12)
Câu hỏi: Tôi hiểu tại sao tôi nhận được ngoại lệ này. Đó là vì lớp ArrayList
từ bên trong Arrays.java
đang được sử dụng mà không có phương thức remove()
. Câu hỏi của tôi là làm thế nào một người nào đó (bất kỳ người dùng nào, như tôi) biết trước khi sử dụng rằng List
họ nhận được rằng nó không chứa một phương pháp remove
?
OP biết điều này. Câu hỏi đặt ra là liệu có bất kỳ cách nào để phát hiện sự thiếu triển khai này mà không biết loại cụ thể của danh sách. – ApproachingDarknessFish