首页 > 解决方案 > 我有两个 Java 对象,我想决定在运行时返回哪个对象

问题描述

这是我的控制器类。我想根据选择呈现数据,但我可以一次返回任何一种对象:

@RequestMapping(value ="/listMessages" , produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
@ResponseBody
public List<FirstVersionMessageDTO> getAllMessages(@RequestParam Map<String,String> allParams) {
    if(allParams.get("version").equalsIgnoreCase("v1" ) && allParams.size()==1)
        return listMessagesService.getAllMessages("v1");    
    else if (allParams.get("version").equalsIgnoreCase("v2") )
        return listMessagesService.getAllMessages("v2");
    return null;    
}

我想在运行时返回对象。我的意思是有两个对象FirstVersionMessageDTOand SecoundVersionMessageDTO,但是如果我的版本是 v1,那么第一个,如果它是 v2,那么第二个。

如何在运行时实现这一点?

标签: javaspring-bootrest

解决方案


如果您真的想要快速修复,那么您可以使用泛型

方法签名如下:

public List<?> getAllMessages(...)

推荐阅读