求救:java.lang.ClassCastException

dgsrest 2003-11-14 11:23:08
部分代码如下:
String strNodeId=request.getParameter("nodeid");

int intNodeId=-99;

if(strNodeId.equals("-99")) //如果没选中要显示的树结点
intNodeId=-1;
else {
intNodeId=Integer.parseInt(strNodeId);
}
Vector vcSon=new Vector();
vcSon=treeManager.getAllChildNodeById(intNodeId);
DatumTree datumTree=(DatumTree)vcSon.firstElement();
datumTree.setParentId(-1);

for(int k=0;k<vcSon.size();k++){
datumTree=(DatumTree)vcSon.get(k);
......生成树
...全文
95 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
207 2003-11-14
  • 打赏
  • 举报
回复
javadoc:

Thrown to indicate that the code has attempted to cast an object to a subclass of which it is not an instance. For example, the following code generates a ClassCastException:


Object x = new Integer(0);
System.out.println((String)x);

检查一下vcSon里面的存储对象是否正确
DatumTree datumTree=(DatumTree)vcSon.firstElement();
wobelisk 2003-11-14
  • 打赏
  • 举报
回复
maybe this line has some error:
vcSon=treeManager.getAllChildNodeById(intNodeId);

getAllChildNodeById(int) return a Vector, how about the element type stored in this vector? The element should be DatumTree type.
caoxmby 2003-11-14
  • 打赏
  • 举报
回复
照出现的异常来看是:
DatumTree datumTree=(DatumTree)vcSon.firstElement();
的问题
检查看看放进去vcSon里的东东是不是一个DatumTree(或者是DatumTree的子类)
fft123 2003-11-14
  • 打赏
  • 举报
回复
你看看传进来的nodeid是不是数字
如果不是数字,那么Integer.parseInt转换不了,就会报错的
在String strNodeId=request.getParameter("nodeid");
之后用System.out.println把这个strNodeId输出看看
warriorwww 2003-11-14
  • 打赏
  • 举报
回复
intNodeId=Integer.parseInt(strNodeId);
好象是这句错了,可能strNodeId的值不是一个有效的数字。
dgsrest 2003-11-14
  • 打赏
  • 举报
回复
Tomcat 4.0.3报错信息:
Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error

--------------------------------------------------------------------------------

type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

java.lang.ClassCastException: java.lang.Integer
at org.apache.jsp.showPartTree$jsp._jspService(showPartTree$jsp.java:132)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
atorg.apache.jasper.servlet.JspServlet$JspServletWrapper.serviceJspServlet.java:202)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
at java.lang.Thread.run(Thread.java:484)



--------------------------------------------------------------------------------
truezerg 2003-11-14
  • 打赏
  • 举报
回复
有二处可能出现错误。分别是

intNodeId=Integer.parseInt(strNodeId); 和

datumTree=(DatumTree)vcSon.get(k);

如果strNodeId无法换成Integer,则出错。

如果voSon里放的对象不是DatumTree类或它的子类的对象也会出错

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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