循环整数列表时发生 Java 转换错误?

标签 java string arraylist integer

我正在制作一个循环遍历整数列表的程序(简单,废话)。问题是,当我循环并尝试将整数列表转换为字符串列表时,我得到 java.lang.String cannot be cast to java.lang.Integer错误。是的,字符串到整数错误,而不是整数到字符串错误。我不知道为什么或如何发生这种情况,我需要有关如何修复它的帮助。

我如何定义列表:

public List<Integer> killsList;
killsList = new ArrayList<Integer>();

我如何调用该方法:

gc.setList("playerKills", gc.getStringListFromIntegerList(plugin.killsList));

如何添加值:

plugin.killsList.add(1);

错误发生在for (Integer num : list) {上线...

代码:

public ArrayList<String> getStringListFromIntegerList(List<Integer> list) {

    ArrayList<String> newList = new ArrayList<String>();

    plugin.console.sendMessage(list.toString());

    for (Integer num : list) {

        newList.add(String.valueOf(num));
        plugin.console.sendMessage(String.valueOf(num));

    }

    return newList;

}

示例:

public List<Integer> killsList;
killsList = new ArrayList<Integer>();

plugin.killsList.add(kills);

gc.setList("playerKills", gc.getStringListFromIntegerList(plugin.killsList));

public ArrayList<String> getStringListFromIntegerList(List<Integer> list) {

    ArrayList<String> newList = new ArrayList<String>();

    plugin.console.sendMessage(list.toString());

    for (Integer num : list) {

        newList.add(String.valueOf(num));
        plugin.console.sendMessage(String.valueOf(num));

    }

    return newList;

}

最佳答案

概念证明您的问题尚不充分。这是我的mcve使用您的代码 try catch 您的错误:

import java.util.ArrayList;
import java.util.List;

public class Foo {
    public static void main(String[] args) {
        List<Integer> killsList;
        killsList = new ArrayList<Integer>();
        for (int i = 0; i < 10; i++) {
            killsList.add(i);
        }

        ArrayList<String> strList = getStringListFromIntegerList(killsList);
        System.out.println(strList);
    }

    public static ArrayList<String> getStringListFromIntegerList(List<Integer> list) {
        ArrayList<String> newList = new ArrayList<String>();
        // plugin.console.sendMessage(list.toString());
        for (Integer num : list) {
            newList.add(String.valueOf(num));
            // plugin.console.sendMessage(String.valueOf(num));
        }
        return newList;    
    }
}

并且它返回无错误:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

您的错误位于您未向我们展示的代码中的其他位置,我猜测是通过某种方式将字符串放入输入列表中。要解决此问题,您需要创建并发布有效的 MCVE,该 MCVE 会向我们显示错误。

关于循环整数列表时发生 Java 转换错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34971704/

相关文章:

java - 可被 3 整除的数字递归

java - 如何处理数组 :Exception in thread "main" java. lang.ArrayIndexOutOfBoundsException: 3

java - 从特定文件夹中的java执行shell命令

java - 正则表达式中\W,\\W,[^a-zA-Z0-9_]的区别

java - 将一个 ArrayList 中的对象添加到另一个 ArrayList

java - 未使用 RSA 加密加密的大数据

python:在一个字符后拆分字符串

java - 用于将嵌套列表字符串表示形式转换回列表的 Groovy/Java 方法

java - 将 HashMap 的键保存到按 Java 中的 HashMaps 值排序的 ArrayList

java - 创建存储类别,按权重排序和限制