【问题标题】:How to add two different objects into a single object如何将两个不同的对象添加到一个对象中
【发布时间】:2013-06-23 10:51:43
【问题描述】:

这是我添加两个不同对象的函数。

@GET
@Path("/getApplicationEnv")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public List<Object> getApplicationEnv(){

    List<ApplicationDTO> allApplication = applicationService.getAllApplication();                       
    List<Application> Applist = new ArrayList<Application>();

    for(ApplicationDTO d: allApplication)
    {
        Application a = new Application();

        a.setApplicationId(d.getApplicationId());
        a.setApplicationName(d.getApplicationName());
        a.setCreateTime(d.getCreateTime());
        a.setOwner(d.getOwner());   
        Applist.add(a);
    }   

    List<EnvironmentDTO> allEnvironments = environmentService.getAllEnvironments();

    List<Environment> Envlist = new ArrayList<Environment>();

    for(EnvironmentDTO d: allEnvironments)
    {
        Environment e = new Environment();

        e.setEnvironmentId(d.getEnvironmentId());
        e.setEnvironmentName(d.getEnvironmentName());
        e.setOwner(d.getOwner());
        e.setCreateTime(d.getCreateTime());
        Envlist.add(e);
    }

    ArrayList<Object> obj= new ArrayList<Object>();
    obj.addAll(Applist);
    obj.addAll(Envlist);

    return obj;
}

目前我正在使用 ArrayList of Object 添加两个对象,但出现以下错误:

*严重:找不到 Java 类 java.util.ArrayList、Java 类型 java.util.List 和 MIME 媒体类型 application/xml 的消息正文编写器 *

我尝试过创建一个公共父类,但我拥有两个类的一些属性,因此不可能有一个公共父类。

谁能给我建议一个实现这一目标的方法?

【问题讨论】:

    标签: java object arraylist jaxb


    【解决方案1】:

    你可以尝试改变

        ArrayList<Object> obj= new ArrayList<Object>();
        obj.addAll(Applist);
        obj.addAll(Envlist);
    

    ArrayList<MyModel> obj= new ArrayList<MyModel>();
    MyModel mm = new MyModel();
    mm.setVal1(Applist);
    mm.setVal2(Envlist);
    obj.add(mm);
    

    更新

    class MyModel
    {
       private ApplicationDTO appDTO;
       private EnvironmentDTO enDTO;
    
       //getters settters here
    }
    

    这里 MyModel 只是一个模型类,根据您的要求有两个 fields..
    希望这会有所帮助

    【讨论】:

    • 你在 MyModel 类中说的是哪两个字段?
    • 用于存储您的 Applist 和 Envlist 的字段
    • 这些字段已经在我的 ApplicationDTO 和 EnvironmentDTO 类中。我正在添加我的类,请查看
    【解决方案2】:

    问题在于 object 不被视为 xml 元素。你可以像这样创建一个对象

    @XmlRootElement
    public class MyObject{
    private List<Application> somename;
    private List<Environment> somename2;
    //Getters
    //setters
    }
    

    然后这样做

        public List<MyObject> getApplicationEnv(){
    /*Some code*/
    }
    

    【讨论】:

    • 我在 ApplicationDTO 和 EnvironmentDTO 中有我所有的 getter 和 setter。我将在 MyObject 中放入哪些 getter 和 setter?
    • 对于列表 private List somename;private List somename2;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2016-08-24
    • 2019-01-18
    相关资源
    最近更新 更多