论坛首页 Java企业应用论坛

Object数组到泛型数组转换的伪解决方案

浏览 15628 次
精华帖 (11) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-02   最后修改:2009-02-02
是我理解错了,java1.5的泛型跟xxx语言的泛型不一样
只是一个syntax sugar,只存在于编译期,强制转型其实还是存在的“伪泛型”。
0 请登录后投票
   发表时间:2009-02-02  
数组并不适合泛型...集合忧郁数组....
0 请登录后投票
   发表时间:2009-02-04  
泛型可以使用数组呀,网上怎么有好多人说java泛型不支持数组??
0 请登录后投票
   发表时间:2009-02-06   最后修改:2009-02-06
c.toArray(new T[0]); 返回是传入参数本身,你拿个0长度数组来return 肯定不行吧。
0 请登录后投票
   发表时间:2009-02-12   最后修改:2009-11-27
   
0 请登录后投票
   发表时间:2009-02-16  
留个标记回家看,公司用普元的EOS做开发,JDK是1.4的,泛型用不上,郁闷
0 请登录后投票
   发表时间:2009-03-16  
c.toArray((T[])new Object[0] ); 就可以了.
0 请登录后投票
   发表时间:2009-03-19  
rmn190 写道
c.toArray((T[])new Object[0] ); 就可以了.


发现我前些天用的方法有问题, 报异常了:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
at serializable.TryGeneric.main(TryGeneric.java:16)

实验用代码如下:


import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TryGeneric {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		Date now = new Date();
		List list = new ArrayList();
		list.add(now);
		
		Date[] results = (Date[]) convertToArray(list); 
	}
	
	@SuppressWarnings("unchecked")
	private static <T> T[] convertToArray(List<T> list) {
		return list.toArray((T[])new Object[0] );
	}
}

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics