在循环中使用 getter setter 变量

using getter setter variables within a loop

有没有办法将 getter 方法用作变量,我的意思是在这里我想用变量 getDiscountCode() 替换

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);
}

像这样

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().get(row).getDiscountCode()' 行作为变量因为 rowid 在那里 任何建议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;
    }
    ...
}

您可以为此目的使用功能界面 Function

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

该函数将采用一个整数(您的行)和 return 折扣代码:

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);
}

缺少一些重要的细节。例如,当您调用 valueDTO.setValue(...) 时,setValue 期望什么类型?有 Object 吗?一个String?一些自定义 class?如果它是自定义 class,是否真的有多个 getter 可以改变,那 return 那 class?

假设setValue的参数是一个Object。如果getRow()return是classYourClass的东西,你可以这样写:

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

并这样称呼它:

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