如何使用Class.cast()进行未知类型的集合返回

时间:2014-05-16 12:49:07

标签: java generics reflection

我正在研究一种可以管理用户创建的Java数据模型的数据管理器。它有一个getter方法来返回给定类的所有对象:

public <T> Collection<T> getAllForClass(Class<T> clazz);

我还有一个过滤器对象,用于存储要过滤的数据的类。它有一个getter方法如下:

public Class<?> getFilterClass();

所以当我应用过滤器时,我想这样做:

Collection<Object> objects = dataMgr.getAllForClass(filter.getFilterClass());

编译器抱怨:

Incompatible types: Collection<CAP#1> cannot be converted to Collection<Object> where CAP#1 is a fresh type variable: CAP#1 extends Object from capture of ?.

这不起作用:

Collection<? extends Object> objects = dataMgr.getAllForClass(filter.getFilterClass());

我有预感,我需要使用Class.cast(),但我不知道如何。有人可以帮忙吗?

0 个答案:

没有答案