2011-02-03 2 views
11

Я хотел бы сделать клон моей ArrayList с помощью этого кода:Java: Безопасно ли вы создаете клонирование массива?

ArrayList<String> _names; 

ArrayList<String> names = (ArrayList<String>) _names.clone(); 

Насколько я знаю, ничего особенного. Мой компилятор однако, дает следующее предупреждение:

Тип безопасности: Переполнение отлиты из объекта в ArrayList <

снабжать струной, тетивой и т.п. >

Кто-нибудь знает более чистое решение, которое не дает мне предупреждение?

+0

Кастинг на '' ArrayList не даст это предупреждение. Вам нужно, чтобы это было 'ArrayList '? Можете ли вы назвать 'toString' для результирующих элементов? – finnw

+0

для подобных случаев У меня отключена опция «unchecked» по умолчанию :) – bestsss

+0

@ finnw: Мне это нужно для других типов, кроме строк, а также @ bestsss: мне нравится решение cadrian лучше :) – SirLenz0rlot

ответ

25
names = new ArrayList<String>(_names); 

Или используйте @SuppressWarnings("unchecked")

+0

Спасибо, ответ был совершенно очевиден :) это работает – SirLenz0rlot

Смежные вопросы