首页 > 解决方案 > 将列表转换为子类

问题描述

我们有一些代码当前正在调用返回ClassA对象列表的远程 EJB。我需要向 中添加更多属性ClassA,但有人告诉我我们根本不想修改远程 EJB。所以我创建了一个ClassB扩展ClassA和添加这些新属性的方法。所以我坚持的是我不知道如何将我的转换List<ClassA>List<ClassB>.

public class ClassA {

    private String propA;
    private String propB;

}

public class ClassB extends ClassA {

    private String propC;
    private String propD;

}

public class ServiceClass {

    public List<ClassA> getInfo() {
        List<ClassA> myInfo = remoteEjb.serviceCall();
        return myInfo;
    }

}

我如何myInfo变成一个List<ClassB>

标签: javagenericsinheritance

解决方案


您不能将超类转换为子类。您可以获取每个属性并一个一个地设置 B 类的新实例,或使用推土机等转换器。

所以回答:将超类的对象转换为子类


推荐阅读