java - 我需要解析java中不同数据类型的其他集合中的集合内容

标签 java

public static <T extends Collection<? extends Object>,E extends Collection<? super Number>> void parseCollection(T src, E  dest, Class<?> clazz){
        for (Object obj : src) {
            if(clazz.equals(Long.class)){
                dest.add(Long.valueOf(obj.toString()));
            }else if(clazz.equals(Integer.class)){
                dest.add(Integer.valueOf(obj.toString()));
            }
        }
    }

当我用 Set<String> 调用这个函数时作为 src 和 List<Long>作为目的地 它显示编译时异常:绑定(bind)不匹配:GenericMethods 类型的泛型方法 parseCollection(T, E, Class) 不适用于参数(Set、List、Class)。推断类型 List不是有界参数的有效替代>

函数被这样调用:

Set<String> src = new HashSet<String>();
        src.add("1");
        src.add("2");
        src.add("3");
        src.add("4");

        List<Long> dest = new ArrayList<Long>();
        parseCollection(src, dest, Long.class);// exception
        System.out.println(dest);

最佳答案

尝试重写您的转换方法,如下所示:

public static <E extends Number> void parseCollection(Collection<?> src, Collection<E> dest, Class<E> clazz){
    for (Object obj : src) {
        if(clazz.equals(Long.class)){
            dest.add((E) Long.valueOf(obj.toString()));
        }else if(clazz.equals(Integer.class)){
            dest.add((E) Integer.valueOf(obj.toString()));
        }
    }
}

关于java - 我需要解析java中不同数据类型的其他集合中的集合内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739959/

相关文章:

java - Maven:打包复制文件夹后复制粘贴WEB-INF到根目录

java - 如何在不使用对象的 getter 方法的情况下获取对象的所有实例变量?

java - 如何在 Maven 多模块 Spring Web 应用程序中 Autowiring 类?

Java 通过带问号的换行符正则表达式拆分字符串

java - JCombobox 字符串项(可见)和整数键(固有)

java - AsyncTask停止工作android

java - 在jsp中显示多个BufferedImage

java - 并行化 + 参数化线程,每个线程的执行顺序随机

java - 复制图形节点以制作节点网络的全新复制

java - 无法将 JOptionPane 设置为不可见然后再次恢复可见