@RequestMapping(value="/portfolios", method = RequestMethod.GET)
public @ResponseBody List<PortfolioVO> getPortfolios(HttpServletRequest request, @RequestParam(required= false) String region) {
List<PortfolioVO> portfolios = gmiCacheService.getPortoliosForRegion(user, region);
return portfolios;
}
我还有另一个我需要添加的功能列表。
然后只返回投资组合。我是Java的新手,不知道如何实现它。
答案 0 :(得分:1)
在c#中,我会使用Tuple
分别存储这两个列表。但在Java中,我没有得到类似的数据结构。但是你可以制作自定义元组结构。
public class Tuple<X, Y> {
public final X x;
public final Y y;
public Tuple(X x, Y y) {
this.x = x;
this.y = y;
}
}
使用上述结构,您可以存储两个不同的列表并使用它。
如果您被允许使用第三方库,则可以javatuples使用Pair
结构
答案 1 :(得分:1)
自Java doesn't have built-in pairs以来,&#34; Java方式&#34;这样做是为了返回一个包含两个List
字段的自定义类。类似的东西:
public class MyReturnType{
public List<PortfolioV0> l1,l2;
}
另一个选择是返回List<List<PortfolioV0>>
(列表列表),第一个项目是第一个列表,第二个项目是第二个列表。
第三种选择是放弃,编写自己的Pair
课程(或使用Apache's),然后返回Pair<List<PortfolioV0>,List<PortfolioV0>>
答案 2 :(得分:0)
我看到两种方式:
1)返回列表数组:public @ResponseBody List[]<PortfolioVO> getPortfolios( ... )
在其中:return new List[] { list1, list2 };
这很快实现,但它并不好看,有点脏。
2)我认为,更合适的方式是为这种情况创建类:
static class ListPairHolder {
List<PortfolioVO> list1;
List<PortfolioVO> list2;
ListPairHolder(List<PortfolioVO> list1, List<PortfolioVO> list2){
this.list1 = list1; this.list2 = list2;
}
}
并从方法返回此类型。