Object[] obj = null ;
String[][] result = null ;
obj=getObj();//返回的是一个对象数组
result = ( String[][] ) obj[ 1 ] ;//异常:java.lang.ClassCastExceptiongetObj()方法由第三方公司提供,并且是正确且可以运行的,
我只是简单地调用(调用方法跟第三方公司提供的一样)
String[][] result = null ;
obj=getObj();//返回的是一个对象数组
result = ( String[][] ) obj[ 1 ] ;//异常:java.lang.ClassCastExceptiongetObj()方法由第三方公司提供,并且是正确且可以运行的,
我只是简单地调用(调用方法跟第三方公司提供的一样)
return (obj == null) ? "null" : obj.toString();
} Object有个toString啊,
result = ( String[][] ) obj[ 1 ] ;
String[][] 不是一种类型,不能拿来转换的!
String[][] result = null ;
obj=getObj();//返回的是一个对象数组
result = ( String[][] ) obj[ 1 ] ;//异常:java.lang.ClassCastException-------------
首先,明确一下getObj()返回的是几维数组,如果是二维,下面写法是对的.
Object[] obj = null ;
String[][] result = null ;
obj=(Object[])getObj();
result = ( String[][] ) obj ; // 更改此处
System.out.println(result[ 1 ][1]);其次,如果是一维数组中存放二维数据,那么下面是正确的,也就是你的代码是正确的.public class T
{
public static void main(String[] args)
{
Object[] obj = null ;
String[][] result = null ;
obj=(Object[])getObj();
result = ( String[][] ) obj[1] ;
System.out.println(result[ 1 ][1]);
}
public static Object getObj()
{
String[][] ret2 = new String[][]{{"aa","aa"},{"bbb","bb"},{"cc","ccc"}};
String[][] ret1 = new String[][]{{"aa","aa"},{"bbb","bb"},{"cc","ccc"}};
Object[] ret = new Object[] {ret1,ret2};
return ret;
}
}你再查看你的代码是否是这两种情况.
如果是,则转换没有问题,如果不是,那么会抛出异常。