弱弱地问:Vector类型转换

kelvin-w 2004-11-15 02:58:39
首先是:
---------------------------------------
select XXX,avg(q1000.flight_score) from .............
将结果集放在一个Vector v中

double sum = 0;
if(v!=null && v.size()>0) {
for(int j=1;j<v.size();j++) {
Vector vItem = (Vector)v.elementAt(j);
sum=sum+((Double)vItem.elementAt(1)).doubleValue();
.......................
---------------------------------------
以上编译和运行都是没有问题的

然后是:
------------------------------------------------------------------------------
Select user_name,count(distinct short_name),count(distinct EVENT_SN) from ..........
结果集仍然放在一个Vector v中
double percent=0;
if(v!=null && v.size()>0) {
percent = ((Double)vItem.elementAt(2)).doubleValue()/((Double)vItem.elementAt(1)).doubleValue();
.................................
------------------------------------------------------------------------------
以上编译可以通过,但运行出现错误:
java.lang.ClassCastException: java.lang.Integer

将 percent = ((Double)vItem.elementAt(2)).doubleValue()/((Double)vItem.elementAt(1)).doubleValue();
换成 percent=Double.parseDouble(vItem.elementAt(2).toString())/Double.parseDouble(vItem.elementAt(1).toString());
编译运行都通过了

请问两个近乎一样的调用,一个可以一个不行,why????
...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
j2nix 2004-11-23
  • 打赏
  • 举报
回复
前者有个Class Cast的操作,如果是不同类体系就会出现ClassCastException异常。
kelvin-w 2004-11-17
  • 打赏
  • 举报
回复
((Double)vItem.elementAt(2)).doubleValue()/((Double)vItem.elementAt(1)).doubleValue();
以及
percent=Double.parseDouble(vItem.elementAt(2).toString())/Double.parseDouble(vItem.elementAt(1).toString());
有何区别?
j2nix 2004-11-15
  • 打赏
  • 举报
回复
放在Vector里头的肯定是Object了.

就是不知道你是怎么放进去的?
kelvin-w 2004-11-15
  • 打赏
  • 举报
回复
Vector是在bean里头get回来的,不是都是object吗?
j2nix 2004-11-15
  • 打赏
  • 举报
回复
可定有问题了.

avg求平均结果就是double
count结果是int

2,633

社区成员

发帖
与我相关
我的任务
社区描述
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
社区管理员
  • WebSphere社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧