如何将两个不同的对象添加到一个对象中
Posted
技术标签:
【中文标题】如何将两个不同的对象添加到一个对象中【英文标题】: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 的消息正文编写器 *
我尝试过创建一个公共父类,但我拥有两个类的一些属性,因此不可能有一个公共父类。
谁能给我建议一个实现这一目标的方法?
【问题讨论】:
【参考方案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以上是关于如何将两个不同的对象添加到一个对象中的主要内容,如果未能解决你的问题,请参考以下文章
如何仅将具有不同属性的对象添加到核心数据到多关系 NSSet
如何将LinkedHashSet集合添加到JsonObjectBuilder对象?