for(int i=1;i<=resus.size();i++)
{
if(i==1) {
item.setMoney1(cashBudgetService.getMoney(c.getDailyFeeProject().getId(), c.getDailyCatalog().getId(),resus.get(i-1),companyId));
}
if(i==2) {
item.setMoney2(cashBudgetService.getMoney(c.getDailyFeeProject().getId(), c.getDailyCatalog().getId(),resus.get(i-1),companyId));
}
if(i==3) {
item.setMoney3(cashBudgetService.getMoney(c.getDailyFeeProject().getId(), c.getDailyCatalog().getId(),resus.get(i-1),companyId));
}
if(i==4) {
item.setMoney4(cashBudgetService.getMoney(c.getDailyFeeProject().getId(), c.getDailyCatalog().getId(),resus.get(i-1),companyId));
}
}

解决方案 »

  1.   

      对象里面有4个不同的setMoney方法????
      

  2.   

    四个setMoney方法?
    可以试试 只用一个setMoney方法,并添加一个参数比如flag;
    setMoney方法内通过不同的flag进行处理
      

  3.   

    晕,你这for循环写的还有意义么
      

  4.   

    是这个样子的  
    假设某个月总共有30天,我要在前台显示有数据的这几天的记录,类似下面这个样子我用的前台框架是jquery easyui+volicety
    我是想知道 可不可以加set变量化
    比如写成下面这个样子:
    for(int i=1;i<=resus.size();i++) { if(i==1) { item.setMoneyi(cashBudgetService.getMoney(c.getDailyFeeProject().getId(), c.getDailyCatalog().getId(),resus.get(i-1),companyId)); }
     }
    有没有类似的实现方式,变量必须要有这么多
      

  5.   

    就是想知道可以不可以有类似这样的实现方式:for(int i=1;i<=resus.size();i++) { 
    if(i==1) { item.setMoneyi(cashBudgetService.getMoney(c.getDailyFeeProject().getId(),c.getDailyCatalog().getId(),resus.get(i-1),companyId)); }
     }
      

  6.   

    你那样写算什么呀?一个月有30天难道你要写30个if吗?1到30个item.setMoney???
    因为每天的数据和某月某天没有任何的关系所以为什么不用一个setMoney方法呢?
      

  7.   

    类似这样子,field表示的是参数名称,我声明一个,我就只能显示一列columns:[[
    #set ($_index = 1)
    #foreach($day in $days)
       {field:'money$_index',title:$day,width:fixWidth(0.1)},
    #set($_index = $_index+1)
    #end
    {field:'applyMan',title:'申请人',width:fixWidth(0.1)},
    {field:'memo',title:'备注',width:fixWidth(0.1)}
    ]]
      

  8.   

    for(int i=1;i<=resus.size();i++) { if(i==1) { item.setMoney(cashBudgetService.getMoney(c.getDailyFeeProject().getId(), c.getDailyCatalog().getId(),resus.get(i-1),companyId),i); }
     }
    这样不行吗?
      

  9.   

    for(int i=1;i<=resus.size();i++){
    item.setMoney(cashBudgetService.getMoney(c.getDailyFeeProject().getId(), c.getDailyCatalog().getId(),resus.get(i-1),companyId),i);
    }
      

  10.   

    如果不止4个setMoney,用反射吧,只有那4个的话,不如保持现状,可读性更高...更容易维护
      

  11.   

    老夫观察你item.setMoney1的方法在循环中只是在根据i的值判断该调用哪个setMoney方法,
    但是 setMoney1、setMoney2、setMoney3、setMoney4这四个方法只有resus.get(i-1) 这里用到i的值,并且操作是一样的,都是i-1。
    是不是可以写成
    for(int i=1;i<=resus.size();i++){
    item.setMoney1(cashBudgetService.getMoney(c.getDailyFeeProject().getId(), c.getDailyCatalog().getId(),resus.get(i-1),companyId));
        }
      

  12.   

    支持这个不过我又想问,如果真的有setMoney30()或setMoney31()的话,写出这种代码的不应该直接开除么?