我试图显示数据库中的所有结果,但在结果循环中出现以下错误: 无法从 vector 转换为整数 无法从 vector 转换为字符串
<%
Vector<Object> Results = scoreBean.getAllResults();
String homeTeam;
String awayTeam;
int homeScore;
int awayScore;
final int NUM_FIELDS = 4;
for (int i=0;i<Results.size()/NUM_FIELDS;i++)
{
homeTeam = (String)Results.elementAt(i*NUM_FIELDS); \\\error here
awayTeam = (String)Results.elementAt(i*NUM_FIELDS + 1); \\\error here
homeScore = (Integer)Results.elementAt(i*NUM_FIELDS + 2);\\\error here
awayScore = (Integer)Results.elementAt(i*NUM_FIELDS + 3);\\\error here
%>
<TR>
<TD><%= homeTeam %></TD>
<TD><%= awayTeam %></TD>
<TD><%= homeScore %></TD>
<TD><%= awayScore %></TD>
</TR>
<%
}
最佳答案
从错误来看,Vector
中存储的值可能实际上不是整数:
homeScore = (Integer)Results.elementAt(i*NUM_FIELDS + 2);\\\error here
awayScore = (Integer)Results.elementAt(i*NUM_FIELDS + 3);\\\error here
因此出现了ClassCastException
。检查存储在集合中的值的类型。
一些注意事项:
Vector
集合已过时。请改用ArrayList
。- 使用 scriptlet 也是一个坏主意,请考虑使用 JSTL
forEach
用于迭代集合。
关于java - 无法从 Vector<Object> 转换为 Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16401455/