(1)有这样一个方法:
List<Object[]> objs = getObjectFromDB("param1","param2");
(2)然后他这样来写:
User user = new User();
user.setUserId((Long)objs[0]);
user.setAge((Double)objs[1]);
他这样写运行后报告了错误是:类型转换异常。
其实刚才分析了下原因:(1)它从数据库中查出数据后的返回类型是Object类型的。然后他就用Long和Double类型来直接强制转换,这样做法是错误的。因为本来Object就不知道具体它是什么类型的,所以强制转换会发生异常。其实解决的办法是这样的:user.setUserId(Long.valueOf(objs[0].toString())); 先把Object转换成具体的类型,例如是String类型的,然后在进行强制转化,这样的做法是正确的。
写下这段话或许是给自己看的,同时也希望帮助其它有同样问题的人。