Я хочу разыграть List<String>
в массив Integer[]
. Я сделал эту функцию:
public static Integer[] castToArrayInteger(List<String> cadenas) {
Integer[] enteros = new Integer[cadenas.size()];
for(int iteracion = 0; iteracion < cadenas.size(); iteracion++) {
enteros[iteracion] = Integer.valueOf(cadenas.get(iteracion));
}
return enteros;
}
Затем я сделал тест:
@Test
public void castToArrayInteger() {
List<String> cadenas = new ArrayList<>();
Integer[] enteros = new Integer[3];
int i = 0;
while(i < 3) {
cadenas.add(String.valueOf(i));
enteros[i] = i;
i++;
}
Assert.assertArrayEquals(enteros, ArregloUtils.castToArrayInteger(cadenas)) ;
}
Это работает как шарм. Но когда я использую функцию в веб-приложении, она не работает.
Инструментом отладки отметьте строку:
Integer.valueOf(cadenas.get(iteracion));
Ошибка
Integer is not compatible with the declared Type String.
Это строка, где я реализовал функцию getRubros:
List<CatalogoDto> rubros = this.catalogoService.buscar(
ArregloUtils.castToArrayInteger(this.getProductor().getRubrosId()));
Метод getRubrosId()
получения данных в List<String>
Я хотел бы знать, почему у меня эта проблема.
Окружающая среда:
Java 1.8
Wildfly 16
Red Hat CodeReadyStudio.
Я ожидал для этого ввода:
List<String> data = new ArrayList<String>();
data.add("1");
data.add("2");
data.add("3");
Integer output = [1,2,3];