Какой самый простой способ преобразовать ArrayList
в ArrayList<Type>
без предупреждения "непроверенные или небезопасные операции"? В частности, какой самый простой способ справиться с ситуацией ниже?
public static void doStuff(ArrayList... a) {
// stuff
}
Я хочу иметь возможность вызвать метод с любым количеством параметров, что означает, что a
будет массивом, и поэтому я не могу указать тип. Поэтому, если нет альтернативного решения, у меня есть массив ArrayLists, который мне нужно преобразовать в ArrayList<Type>
.
Если вам нужно преобразовать простой ArrayList
в ArrayList<Type>
то он логически является небезопасным преобразованием, потому что компилятор не может гарантировать, что типы будут совпадать. Если это не проблема в этом случае, игнорируйте или подавляйте предупреждение. Это просто говорит вам быть осторожным: это не обязательно означает, что есть проблемы с вашим кодом.
Если не требуется, чтобы что-либо было добавлено или удалено из List
вы могли бы сделать
public static void doStuff(List<?>... list) {
Учитывая, что ArrayList
представляет собой коллекцию с переменным размером, вероятно, имеет смысл использовать
public static void doStuff(List<?> list) {
@SuppressWarning("unchecke
// stuff
делает.