gpt4 book ai didi

java - 为什么在 List 中将 String 简单转换为 Integer 时会出现错误

转载 作者:行者123 更新时间:2023-12-02 05:09:26 24 4
gpt4 key购买 nike

我想转换 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)) ;
}

它就像一个魅力。但是当我在 Web 应用程序中使用该函数时,它失败了。

调试工具标记该行:

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
野蝇16
红帽 CodeReadyStudio。

我期望这个输入:

List<String> data = new ArrayList<String>();
data.add("1");
data.add("2");
data.add("3");

Integer output = [1,2,3];

最佳答案

只是为了清楚使用 Integer.valueOfvalid String 转换为 int 条目的部分(例如在您的测试中)不是实际的问题。您正尝试将无法转换为字符串的String条目转换为字符串,如错误消息所示:

Integer is not compatible with the declared Type String.

您可以通过运行以下代码来确认问题不在于转换过程本身,而在于您尝试转换的内容:

    List<String> sData = new java.util.ArrayList<String>();
sData.add("1"); sData.add("2"); sData.add("3");

Integer[] iData = new Integer[sData.size()];
for (int i = 0; i < sData.size(); i++) {
iData[i] = Integer.valueOf(sData.get(i));
System.out.println(iData[i]);
}

我建议使用一些调试技术(例如断点或简单日志记录)检查您在运行时转换的条目。这应该可以解决您的问题。

关于java - 为什么在 List<String> 中将 String 简单转换为 Integer 时会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56333060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com