范型的一个问题

如下,我定义了一个方法:

public static List<?> convert(Map dc, Class<?> classType){
    List<?> l = new ArrayList<Class<?>>();
    try {
        Object co = classType.newInstance();

        l.add(co);

    } catch (InstantiationException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }


    return l;
}

我要实现的目的是,将map里的key value转成一个有get,set方法的bean, 我这里没有列出具体的实现,问题是在转型上,怎么能够动态定义那个co的类型就是classType并可以加到l中去呢? 现在l.add(co)是不能编译通过的。

2个回答

可以改成:
public static List convert(Map dc, Class classType){
List l = new ArrayList();
try {
T co = classType.newInstance();

l.add(co);

} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}

return l;
}

不过你这里有必要用到泛型吗?

squll369
squll369 谢谢回答,这就是我要的,这里的代码其实只是一个demo,没必要用范型,我是为了外面调用不要再转型了
6 年多之前 回复

这样行不:
if(co instanceof classType){
l.add(co);
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐