首页 > 解决方案 > 如果我具体类型未知,请复制集合

问题描述

我在运行时有一个 Collection 对象,我需要代理集合中的每个元素并返回相同的集合而不修改现有集合。所以我需要创建具有相同类型的实例并用代理对象填充它。有人可以建议在不编写很多实例的情况下如何做到这一点吗?

UPD

           if (originalResult instanceof Collection) {
                Collection collection = ((Collection) originalResult);

                Collection newCollection = (Collection) collection.stream()
                        .map(this::proxyObject)
                        .collect(Collectors.toList());
                collection.clear();
                collection.addAll(newCollection);
                return collection;

            } else if

这是我实现 net.sf.cglib.proxy.MethodInterceptor#intercept的代码的一部分 ,在调用“get”方法后返回代理。这是我的第一个变体,但我意识到这种方式不适合我,因为会改变现有对象。

标签: javacollections

解决方案


推荐阅读