日期:2014-05-20  浏览次数:20703 次

java.lang.String cannot be cast to java.lang.Integer错误
jTextField1.setText(((Integer)jTable.getValueAt(row,   1)).toString());


程序一执行到这里就出错了,不知道为什么
jTextField1接收的是数据库里面的一个字段,类型为numeric
请问一下高手,应该怎么改才不会出错啊,我是初学者

------解决方案--------------------
既然是numeric,就别用Integer转化,另外,建议你先看一下jTable.getValueAt(row, 1)取出来什么类型,如果是String的,
还是用
Integer.parseInt(jTable.getValueAt(row, 1)),或者new Integer(jTable.getValueAt(row, 1))
------解决方案--------------------
System.out.println((jTable.getValueAt(row,1)).getClass().getName());
打印出来看看是什么类型,再去那个类里找相应的转换方法,这种通过获得的方法得到的不能乱转换类型,我有一次把Hibernate从数据库里取出来的值想当然地转成了Integer,总是报错,后来打印出来发现是BigInteger类型
------解决方案--------------------
从你的异常信息来看,jTable.getValueAt(row, 1)取出来的就是String,在向Integer转型时包错,


可以根据楼上的同学说的,将实际的类型打印出来看看,再做转型操作不迟。