在循环中使用 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)));
有没有办法将 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)));