日期:2014-05-19  浏览次数:20549 次

类型转换??
后台报错:
==loginMode==[object Object]
2012-3-9 15:02:46 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.NumberFormatException: For input string: "[object Object]"


代码:
//Long loginMode = Long.parseLong(request.getParameter("loginMode"));
String loginMode = request.getParameter("loginMode");

System.out.println("==loginMode=="+loginMode);

------解决方案--------------------
String loginMode = (String)request.getParameter("loginMode");

??

Long loginMode = Long.parseLong((String)request.getParameter("loginMode"));


------解决方案--------------------
String loginMode = (String)request.getParameter("loginMode");

先转成STRING啊
request.getParameter();能传递对象吗?
------解决方案--------------------
先转成String然后再做后续的类型转换吧
------解决方案--------------------
哈哈。。一看就知道loginMode传的是一个javascript数组,然后调用Long.parseLong就报错了。。
要不你试试System.out.println(request.getParameter("loginMode")),输出的肯定是"[object Object]"。


------解决方案--------------------
你的错误有两种可能
1、
request.getParameter("loginMode")这个返回来的是一个Object类型的对象
而你采用这样的方式去转换的话那么就错误了!
//Long loginMode = Long.parseLong(request.getParameter("loginMode"));
这样的类型转换是将字符串的形式转成long类型的但是字符串必须是“125”这样的数字类型,如果不是这样的数字类型那么就错误了!
2、
request.getParameter("loginMode")这个返回来的是一个Object类型的对象
这个对象中的类型是“a123”这样的类型,你在转换的时候就错误了,就是这个异常信息
java.lang.NumberFormatException: For input string: "[object Object]"

——————————————————————————————————————
如果用第一种方法去解决的话可以这样写
Long loginMode = Long.parseLong((request.getParameter("loginMode")).toString());
这样就解决了问题了