2017-06-30 49 views
0

有没有办法使用getter方法为变量的方式,我的意思是在这里内的getter setter方法变量我想用一个变量使用循环

for (int row=0; row < pOSBean.getItemList().size(); row++) { 
    valueDTO = new ValueDTO(); 
    valueDTO.setRowId(1); 
    valueDTO.setValue(pOSBean.getItemList().get(row).getDiscountCode()); 
    valueListDTO.add(valueDTO); 
} 

像这样

更换 getDiscountCode()
variable = getDiscountCode(); 

for (int row=0; row < pOSBean.getItemList().size(); row++) { 
    valueDTO = new ValueDTO(); 
    valueDTO.setRowId(1); 
    valueDTO.setValue(pOSBean.getItemList().get(row).+variable); 
    valueListDTO.add(valueDTO); 
} 

我不能使用'pOSBean.getItemList()得到(行).getDiscountCode()'行作为ROWID的Cuz一个变量是有 任何建议PLZ

public List<ItemCartDTO> getItemList() { 
    return itemList; 
} 

public class ItemCartDTO implements Serializable { 
    private String locCode; 
    private List<CommonDropdownItemsDTO> selectedItmStockList; 
    private String discountCode; 

    public String getDiscountCode() { 
     return discountCode; 
    } 
    public void setDiscountCode(String discountCode) { 
     this.discountCode = discountCode; 
    } 
    ... 
} 

回答

0

可以使用功能接口Function用于这一目的:

Function<Integer, DISCOUNT_CODE> method = (row) -> pOSBean.getItemList().get(row).getDiscountCode(); // Edit DISCOUNT_CODE Type 

的功能将采取整数(你行)并返回折扣代码:

valueDTO.setValue(method.apply(row)); 

您可能还看看enhanced for loop。有了这种类型的循环,你可以使你的循环更漂亮:

for (Item item : pOSBean.getItemList()) 
{ 
    valueDTO = new ValueDTO(); 
    valueDTO.setRowId(1); 
    valueDTO.setValue(item.getDiscountCode()); 
    valueListDTO.add(valueDTO); 
} 
+0

学到了新的东西感谢ü回滚。大!有效!! – xyzabc

0

有一些重要的细节丢失。例如,当您拨打valueDTO.setValue(...)时,setValue会指望什么类型?任何Object? A String?一些自定义类?如果它是一个自定义类,是否真的有多个getter,你可以改变,这将返回该类?

setValue的参数是Object。如果getRow()回报的东西YourClass类的,你可以这样写:

Function<YourClass, Object> getter = YourClass::getDiscountCode; 

,并调用它像这样:

valueDTO.setValue(getter.apply(pOSBean.getItemList().get(row))); 
+0

Thiks ajb。有效!!我添加了缺少的细节。 – xyzabc