ArrayList to ArrayList <Тип>

1

Какой самый простой способ преобразовать ArrayList в ArrayList<Type> без предупреждения "непроверенные или небезопасные операции"? В частности, какой самый простой способ справиться с ситуацией ниже?

public static void doStuff(ArrayList... a) {
    // stuff
}

Я хочу иметь возможность вызвать метод с любым количеством параметров, что означает, что a будет массивом, и поэтому я не могу указать тип. Поэтому, если нет альтернативного решения, у меня есть массив ArrayLists, который мне нужно преобразовать в ArrayList<Type>.

  • 0
    @SuppressWarning("unchecke
  • 0
    Нет никакого способа иметь универсальный массив (varargs - это массив) без неконтролируемого преобразования. Насколько это безопасно, зависит от того, что // stuff делает.
Показать ещё 1 комментарий
Теги:
arrays
arraylist
casting
types

2 ответа

2
Лучший ответ

Если вам нужно преобразовать простой ArrayList в ArrayList<Type> то он логически является небезопасным преобразованием, потому что компилятор не может гарантировать, что типы будут совпадать. Если это не проблема в этом случае, игнорируйте или подавляйте предупреждение. Это просто говорит вам быть осторожным: это не обязательно означает, что есть проблемы с вашим кодом.

1

Если не требуется, чтобы что-либо было добавлено или удалено из List вы могли бы сделать

public static void doStuff(List<?>... list) {

Учитывая, что ArrayList представляет собой коллекцию с переменным размером, вероятно, имеет смысл использовать

public static void doStuff(List<?> list) {

Ещё вопросы

Сообщество Overcoder
Наверх
Меню