java.lang.ClassCastException: java.math.BigDecimal не может быть приведен к java.lang.String - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь перебрать список, содержащий несколько идентификаторов, например:

[148066, 148065, 148064, 148063, 148062, 148061, 148060, 148059, 148058, 148057, 148056]

List<String> list= DbService.getPayUVerificationList();

где этот объект списка содержит все выбранные идентификаторы из БД.

 if(null != list && !list.isEmpty())
 {
     for (int i = 0; i < list.size(); i++) {

            //System.out.println(list.get(i));
            //String txnId= list.get(i).toString();
            //String txnId = (String) list.get(i);
           //String txnId = (String) list.get(i);
            String txnId = (String) list.get(i).toString();
            String output=hdfcService.checkPayStatusByPayU(txnId);
        }
   }

но я получаю

java.lang.ClassCastException: java.math.BigDecimal нельзя преобразовать в java.lang.String

Я перепробовал много кастований и подходов, но все тщетно.

Редактировать 1: Многие говорят, что этот "list.get (i) .toString ()" должен работать, но в моем случае это все еще не работает, и я понятия не имею об этом.

Ответы [ 3 ]

0 голосов
/ 30 октября 2018

Должно работать следующее:

String.valueOf(list.get(i))

Что по сути не что иное, как

list.get(i).toString()

Итак, то, что вы уже пробовали, должно работать на вас.

0 голосов
/ 30 октября 2018

вместо ниже, вы не должны использовать toString (), он уже объявлен как "String"

  String txnId = (String) list.get(i).toString();

Сделайте это:

 String txnId = (String) list.get(i);

Или

 String txnId = String.valueOf(list.get(i))
0 голосов
/ 30 октября 2018

String txnId = (String) list.get(i).toString(); должно быть String txnId = String.valueOf(list.get(i))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...