Manoj,
Loại Return of Arrays.List là một số thực hiện nội bộ chưa biết của giao diện Danh sách và không java.util.ArrayList, vì vậy bạn có thể gán nó chỉ để một kiểu danh sách.
Nếu bạn gán nó vào một ArrayList ví dụ nó sẽ cho bạn thời gian biên dịch lỗi "Loại không phù hợp: không thể chuyển đổi từ Danh sách đến ArrayList"
ArrayList<String> aList = Arrays.asList(a);// gives Compile time error
Từ Javadoc "Arrays.asList Trả về một cố định (Thay đổi danh sách trả về "ghi thông qua" vào mảng.) "có nghĩa là bạn chỉ được cung cấp một khung nhìn danh sách của Array mà IMO được tạo ra trong thời gian chạy và ofcourse bạn không thể thay đổi kích thước của một mảng để bạn không thể thay đổi kích thước của "Arrays.asList".
IMO việc thực hiện nội bộ của Arrays.asList có tất cả các phương pháp thực hiện mà có thể thay đổi kích thước của Array như -
void add(E e)
{
//some unknown code
throw(java.lang.UnsupportedOperationException);
}
nên bất cứ khi nào bạn cố gắng để thay đổi kích thước của Array nó ném UnsupportedOperationException. Tuy nhiên nếu bạn muốn thêm một số mục mới vào ArrayList bằng cách sử dụng cú pháp như vậy, bạn có thể làm như vậy bằng cách tạo một lớp con của Arraylist (tốt hơn là bằng cách sử dụng phân lớp ẩn danh của ArrayList). Bạn có thể vượt qua các kiểu trả về của Arrays.List đến constructor của ArrayList, một cái gì đó như thế này (tức là công ArrayList (Collection c).) -
List<String> girlFriends = new java.util.ArrayList<String>(Arrays.asList("Rose", "Leena", "Kim", "Tina"));
girlFriends.add("Sarah");
Bây giờ bạn có thể dễ dàng thêm vào danh sách Sarah GF của bạn bằng cách sử dụng cùng một cú pháp.
PS - Vui lòng chọn câu trả lời này hoặc câu trả lời khác làm câu trả lời của bạn vì evrything đã được giải thích. Tỷ lệ chấp nhận thấp của bạn là rất khuyến khích.
Không quan trọng những gì 'mọi người nói'. Nó quan trọng những gì * Javadoc * nói. – EJP