我正在创建一个遍历整数列表的程序(简单,duh)。问题是,当我循环并尝试将整数列表转换为字符串列表时,我收到java.lang.String cannot be cast to java.lang.Integer
错误。是,String to Integer错误,而不是Integer to String错误。我不知道为什么或如何发生这种情况,我需要帮助来解决它。
我如何定义列表:
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;
}
答案 0 :(得分:1)
您的问题尚不充分的概念证明。这是我的mcve使用您的代码来尝试捕捉您的错误:
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]
您的错误位于您未向我们展示的代码的其他地方,我的猜测是以某种方式将String放入输入列表中。要解决这个问题,您需要创建并发布一个有效的MCVE,它会向我们显示错误。
答案 1 :(得分:0)
在将变量list
传递给上述函数之前,是否可以将其从字符串列表中转换为(List<Integer>) stringList
并且stringList
的类型为List<String>
?