在Java中将List <object>动态转换为List <t>

时间:2018-05-17 11:53:31

标签: java spring-boot collections casting java-8

我的功能如下:

public Event convertModelToEvent(List<Object> reportingObject,String Feedname) {
        Event event = new Event();

        event.setHeaderReference(new HeaderReference());
        Class<?> classType = Class.forName(Feedname);

        List<classType> mythings = (List<classType>) (Object) reportingObject;

        event.setPayload(new Payload(reportingObject));
        event.setSpecifications(Lists.newArrayList());

        return event;
    }

在方法参数中,Feedname只是类名,现在我要将其转换为

List<Object> to List<Feedname>

Feedname可以是任何类名。

任何人都可以建议我还能用它做些什么。

2 个答案:

答案 0 :(得分:0)

我不认为这是通过施法发生的。您必须遍历Object集合,将引用转移到T集合中。 也许你可以使用List.addAll(List list);我现在不能使用我的IDE来测试它。

答案 1 :(得分:0)

如果Feedname可以是任何类,则最多可以构造List<?>。 你可以这样做:

List<?> mythings = reportingObject.stream()
    .map(classType::cast)
    .collect (Collectors.toList())