java - 无法从 Vector<Object> 转换为 Integer

标签 java database jsp javabeans

我试图显示数据库中的所有结果,但在结果循环中出现以下错误: 无法从 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/

相关文章:

java - 通过entityManager.refresh刷新实体集合(getResultList)

java - Spring aop : can't find referenced pointcut annotation

database - 普适8.x如何访问?在哪里可以找到

database - Django 数据库连接池与 psycopg2.pool

css - 将选择框中的选项左对齐,其中选择样式为 'direction:rtl'

java - JSTL 字符串比较总是返回 false

Java 的 toString() 静态或非静态(基于我的示例)

java - 将 Java 比较器逻辑移出实体?

arrays - Meteor mongo更新嵌套数组

javascript - 从 JQuery DataTable 中删除行 - 但它会在重绘表后立即返回。我的 .JSP 数据源是原因吗?