如何解决for循环中的InvocationTargetException? (寻找整个堆栈跟踪)
How to solve InvocationTargetException in for loop? (seeking entire stack trace)
目前,我的工作遇到了问题。
List<Map<String,String>> tmp = //blahblahblah//(for my privacy)
int size = tmp.size();
String[] linearr = new String[size];
String[] numarr= new String[size];
String[] namearr= new String[size];
String[] datearr= new String[size];
int i = 0;
for (i = 0; i < size; i++) {
linearr[i] = (String) tmp.get(i).get("line").toString();
numarr[i] = (String) tmp.get(i).get("number").toString();
namearr[i] = (String) tmp.get(i).get("name").toString();
datearr[i] = (String) tmp.get(i).get("date").toString();
}
我做了一个 List<Map<String,String>>
但是当我进入 for 循环时。 InvocationTargetException
上来了。
而且我无法再调试并且无法跟踪它
我用 throws InvocationTargetException e
尝试了用 try 和 catch 块包围的代码
但是 Eclipse 告诉我删除它。
请帮忙
具体是说invocationtargetexception.<init>(throwable) line: not available
您可能会发现此 link 有帮助。但是,我想建议您需要确保您的地图中的所有键都可用。
P.S。您不需要使用 toString()
和 (String)
转换。
您不想使用列表?如果您在 map 中没有确切的键,它将抛出 Exception 。使用 get 或 default 将阻止它。
List<String> line = new ArrayList<>();
List<String> number = new ArrayList<>();
List<String> name = new ArrayList<>();
List<String> date = new ArrayList<>();
for(Map<String, String> map:tmp){
line.add(map.getOrDefault("line",""));
number.add(map.getOrDefault("number",""));
name.add(map.getOrDefault("name",""));
date.add(map.getOrDefault("date",""));
}
目前,我的工作遇到了问题。
List<Map<String,String>> tmp = //blahblahblah//(for my privacy)
int size = tmp.size();
String[] linearr = new String[size];
String[] numarr= new String[size];
String[] namearr= new String[size];
String[] datearr= new String[size];
int i = 0;
for (i = 0; i < size; i++) {
linearr[i] = (String) tmp.get(i).get("line").toString();
numarr[i] = (String) tmp.get(i).get("number").toString();
namearr[i] = (String) tmp.get(i).get("name").toString();
datearr[i] = (String) tmp.get(i).get("date").toString();
}
我做了一个 List<Map<String,String>>
但是当我进入 for 循环时。 InvocationTargetException
上来了。
而且我无法再调试并且无法跟踪它
我用 throws InvocationTargetException e
尝试了用 try 和 catch 块包围的代码
但是 Eclipse 告诉我删除它。
请帮忙
具体是说invocationtargetexception.<init>(throwable) line: not available
您可能会发现此 link 有帮助。但是,我想建议您需要确保您的地图中的所有键都可用。
P.S。您不需要使用 toString()
和 (String)
转换。
您不想使用列表?如果您在 map 中没有确切的键,它将抛出 Exception 。使用 get 或 default 将阻止它。
List<String> line = new ArrayList<>();
List<String> number = new ArrayList<>();
List<String> name = new ArrayList<>();
List<String> date = new ArrayList<>();
for(Map<String, String> map:tmp){
line.add(map.getOrDefault("line",""));
number.add(map.getOrDefault("number",""));
name.add(map.getOrDefault("name",""));
date.add(map.getOrDefault("date",""));
}