Как решить InvocationTargetException в течение l oop? (ищет всю трассировку стека) - PullRequest
0 голосов
/ 12 февраля 2020

В настоящее время у меня проблемы с работой.


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>>, когда добрался до -1 oop. InvocationTargetException подошел. И я больше не мог отлаживать и не могу отследить его

Я пробовал код окружать блоком try и catch с throws InvocationTargetException e, но Eclipse сказал мне, чтобы удалить его.

, пожалуйста, помогите

конкретно сказано, что invocationtargetexception.<init>(throwable) line: not available

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Вы не хотите использовать список? И если у вас нет точных ключей на карте, он выдаст исключение. Использование 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",""));
    }
0 голосов
/ 12 февраля 2020

Вы можете найти эту ссылку полезной. Однако я хотел бы предложить вам убедиться, что все ключи доступны на вашей карте.

PS Вам не нужно использовать toString() и (String) cast.

...