解决方案 »
- 求一个关于编码转换的问题,在线等
- for循环的一个怪问题
- 求多個數中任意數的組合的和是否有等於一個指定的數?
- java新手求助关于import javax.servlet.*的问题
- 菜鸟java对象的疑问?
- π(pai 3.1415926..........)用java怎么求
- FTPClient实现多线程下载单一文件时遇到的问题
- 请教一个简单问题
- jTextArea中怎么把关键字变色?
- 如何用java编写一个文本编辑器(初学者,请大家帮帮忙)
- 如何让JAVA程序对所有未知错误及异常都进行对话框提示?
- Cannot create PoolableConnectionFactory (尝试连线已失败。)
<T extends A> T[] toArray(Class<? extends A> cla) {
T[] ret = (T[])Array.newInstance(cla, list.size());
return (T[])list.toArray(ret);
}
参数Class<T>cla根本就没有用到。
如果是一个A类型的List想要转换成C类型的数组,这样就行了:List<A> list = new ArrayList<A>();
list.add(new A());
list.add(new A());
C[] c = (C[])list.toArray(new C[list.size()]);另外A类型转成C类型,是向下转换,实际中能不能转还要看实际的对象是什么。向上转换可以不用担心。
的确是,本来想通过通配符进行向下匹配,但发现行不通,用? extends A输出用? super C输入,但到数组那里就不知道如何处理了
如:
List<String> list = xxx;
String[] strarr = list.toArray(new String[list.size()]);
yes。 在你代码上改的。 忘记删了。 看来楼主懂啦 :)