当前位置:  开发笔记 > 编程语言 > 正文

将Class []转换为泛型?

如何解决《将Class[]转换为泛型?》经验,为你挑选了1个好方法。

我仍然试图利用Java的泛型来解决问题.使用类型集合我没有任何问题,但其余的大部分似乎都让我感到厌烦.

现在我正在尝试使用JUnit"PrivateAccessor",它需要一个Class []参数,其中包含被调用的私有方法的所有参数类型的列表.在Java 1.4中,我将其定义为

Class[] args = new Class[] { Collection.class, ArrayList.class };

但实际的代码定义为现在采用参数

myMethod(Collection first, ArrayList second)

我试图改变args的定义

Class[] args = new Class[] 
{ Collection.class, ArrayList.class };

但Eclipse在结束时给出了一个红色标记,并表示它在此时期待"无效".我可以使用泛型来做这件事,还是不应该打扰?



1> bdumitriu..:

你遇到的第一个问题是你应该使用

Class[] args = new Class[]

代替

Class[] args = new Class[]

这解释了原因.

你的第二个问题是你应该使用

{ Collection.class, ArrayList.class };

代替

{ Collection.class, ArrayList.class };

这是因为在执行类型擦除之后,在运行时计算了XXX.class ,因此指定类型参数是无用的,因此是禁止的.

我强烈推荐常见问题解答,我将上面的两个解释与上面的两个解释相关联,以便对Java泛型进行"地球上"的解释,这将澄清大多数问题.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有