Manoj,
Rodzaj Powrót Arrays.List jest jakiś nieznany wewnętrzna implementacja interfejsu listy i nie java.util.ArrayList, więc można przypisać tylko do typu listy.
Jeśli przypisać go do ArrayList na przykład da kompilacji Błąd „Niezgodność typów: nie można przekonwertować z listy do ArrayList”
ArrayList<String> aList = Arrays.asList(a);// gives Compile time error
Z Javadoc „Arrays.asList Zwraca stałym lista rozmiarów poparta przez podaną tablicę. (Zmiany na zwróconej liście "przepisz" do tablicy.) "oznacza to, że dostaniesz tylko widok listy tablicy, który jest tworzony w czasie wykonywania IMO i oczywiście nie możesz zmienić rozmiaru tablicy, więc nie można również zmienić rozmiaru "Arrays.asList".
IMO wewnętrzna implementacja Arrays.asList posiada wszystkie zaimplementowane metody, które mogą zmienić rozmiar tablicy jako -
void add(E e)
{
//some unknown code
throw(java.lang.UnsupportedOperationException);
}
więc kiedy tylko próbować zmienić rozmiar tablicy rzuca się UnsupportedOperationException.
Nadal, jeśli chcesz dodać nowe elementy do tablicy ArrayList, używając takiej składni, możesz to zrobić, tworząc podklasę Arraylist (najlepiej przy użyciu anonimowej podklasy ArrayList). można przekazać typ zwracanej Arrays.List do konstruktora ArrayList, coś takiego (tj publicznego ArrayList (Collection c)). -
List<String> girlFriends = new java.util.ArrayList<String>(Arrays.asList("Rose", "Leena", "Kim", "Tina"));
girlFriends.add("Sarah");
Teraz można łatwo dodać do swojej listy Sarah GF przy użyciu tego samego składnia.
PS - Proszę wybrać tę lub inną jako odpowiedź, ponieważ wyjaśniono wszystko. Twoja niska akceptacja jest bardzo zniechęcająca.
Nie ma znaczenia, co "ludzie mówią". Ważne, co mówi * Javadoc *. – EJP