关于list 添加数据到指定下标

1
2
3
4
5
6
7
8
9
10
11
12
protected <T> List<BusinessItemData> itemMap2ItemList(Map<Integer, Map<String, Object>> docBusinessItems,Class<T> item){
        List<BusinessItemData> businessItems = null;
         if (MapUtils.isNotEmpty(docBusinessItems)) {
            businessItems = new ArrayList<BusinessItemData>(docBusinessItems.size());
            for (int orderNo : docBusinessItems.keySet()) {
                Map<String, Object> docItemAttrs = docBusinessItems.get(orderNo);
                BusinessItemData tmp = (BusinessItemData) DocumentUtils.backendFill2frontend(item,docItemAttrs);
                businessItems.add(orderNo-1,tmp);
            }
        }
        return businessItems;
    }

 碰到了诡异的bug ,在本地单元测试 没问题, 但是拿到测试机上就出错,在地8行报数组越界,太诡异了。本地启动tomcat debug一点问题都没有,没办法只能换中方法

1
2
3
4
5
6
7
8
9
10
11
12
protected <T> List<BusinessItemData> itemMap2ItemList(Map<Integer, Map<String, Object>> docBusinessItems,Class<T> item){
    BusinessItemData[] businessItems = null;
     if (MapUtils.isNotEmpty(docBusinessItems)) {
        businessItems = new BusinessItemData[docBusinessItems.size()];
        for (int orderNo : docBusinessItems.keySet()) {
            Map<String, Object> docItemAttrs = docBusinessItems.get(orderNo);
            BusinessItemData tmp = (BusinessItemData) DocumentUtils.backendFill2frontend(item,docItemAttrs);
            businessItems[orderNo-1] = tmp;
        }
    }
    return Arrays.asList(businessItems);
}




原文地址:https://www.cnblogs.com/juforg/p/3255390.html