2017-06-30 88 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