Manoj,
Тип возврата Arrays.List - это неизвестная внутренняя реализация интерфейса List, а not java.util.ArrayList, поэтому вы можете назначить его только списку.type.
Если вы назначите его, например, для ArrayList, это даст вам ошибку времени компиляции "Несоответствие типов: невозможно преобразовать из List в ArrayList"
ArrayList<String> aList = Arrays.asList(a);// gives Compile time error
Из Javadoc "Arrays.asList Возвращает список фиксированного размера, за которым стоит заданный массив. (Изменения в возвращенном списке" записывают "в массив.)", Что означает, что вам предоставляется только представление списка массива, IMOсоздается во время выполнения и, конечно, вы не можете изменить размер массива, поэтому вы также не можете изменить размер «Arrays.asList».
IMO внутренняя реализация Arrays.asList имеет все реализованные методы, которые могутизмените размер массива как -
void add(E e)
{
//some unknown code
throw(java.lang.UnsupportedOperationException);
}
, поэтому всякий раз, когда вы пытаетесь изменить размер массива, он генерирует исключение UnsupportedOperationException.
StЕсли вы хотите добавить некоторые новые элементы в ArrayList с помощью такого синтаксиса, вы можете сделать это, создав подкласс Arraylist (предпочтительно используя анонимный подкласс ArrayList).Вы можете передать возвращаемый тип Arrays.List в конструктор ArrayList (т.е. public ArrayList (Collection c)) примерно так:
List<String> girlFriends = new java.util.ArrayList<String>(Arrays.asList("Rose", "Leena", "Kim", "Tina"));
girlFriends.add("Sarah");
Теперь вы можете легко добавить Сару в свой список GF, используятот же синтаксис.
PS - Пожалуйста, выберите этот или другой в качестве ответа, потому что все было объяснено.Ваш низкий уровень принятия очень обескураживает.