我正在尝试迭代包含多个ID的列表,如下所示:
[148066、148065、148064、148063、148062、148061、148060、148059、148058、148057、148056]
List<String> list= DbService.getPayUVerificationList();
其中上面的列表对象包含从数据库中获取的所有ID。
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()”应该可以工作,但就我而言,这仍然不起作用,对此我一无所知。
答案 0 :(得分:2)
String txnId = (String) list.get(i).toString();
应该是String txnId = String.valueOf(list.get(i))
答案 1 :(得分:1)
以下方法应该起作用:
ConcurrentModificationException
除了
int
所以,您已经尝试过的东西应该对您有用。
答案 2 :(得分:1)
而不是下面,您不应使用toString(),它已经声明为“字符串”
String txnId = (String) list.get(i).toString();
执行以下操作:
String txnId = (String) list.get(i);
或
String txnId = String.valueOf(list.get(i))