首页 > java > java Vector.toArray 与强制类型转换

java Vector.toArray 与强制类型转换

2007年6月11日 发表评论 阅读评论

public String[] getPlatformIDList()
{
Vector result = new Vector();
try
{
Statement stmt = conn.createStatement();
String sql = “SELECT PlatformID FROM Platform”;
rs = stmt.executeQuery(sql);
while(rs.next())
{
result.add(rs.getString(1));
}
if (result.size() > 0)
{
String[] str = (String[]) result.toArray(); // 出现ClassCastException
return str;
}
else
return null;
}
catch(Exception e)
{
System.err.println(e);
return null;
}
finally
{
try
{
rs.close();
conn.close();
}
catch(Exception e2)
{}
}
}

发现不能将Vector类经过toArray()方法得到的Object[]直接转换成String[],找到用另一个带有参数的 toArray(T[] a)方法才可以。

将该语句改为:

String[] str = (String[]) result.toArray(new String[1]);

即告诉Vector,我要得到的数组的类型。

回想一下,应该是java中的强制类型转换只是针对单个对象的,想要偷懒,将整个数组转换成另外一种类型的数组是不行的。

分类: java 标签: 3,170 次阅读
原文链接:http://www.wenhq.com/article/view_43.html
欢迎转载,请注明出处:亲亲宝宝
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.