有没有办法将getter方法用作变量,我的意思是在这里我想用变量替换 getDiscountCode()
DataSet pleaseWork = JsonConvert.DeserializeObject<DataSet>(thisIsMyJsonString);
DataTable pleaseWorkAgain = pleaseWork.Tables["predictions"];
类似这样的事情
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);
}
我不能使用'pOSBean.getItemList()。get(row).getDiscountCode()'行作为变量cuz rowid在那里 任何建议PLZ
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);
}
答案 0 :(得分:1)
您可以使用功能界面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);
}
答案 1 :(得分:0)
缺少一些重要细节。例如,当您致电valueDTO.setValue(...)
时,setValue
期望什么类型?任何Object
?一个String
?一些自定义类?如果它是一个自定义类,是否真的有多个getter可以改变,那将返回该类?
说setValue
的参数是Object
。如果getRow()
返回类YourClass
的内容,您可以写:
Function<YourClass, Object> getter = YourClass::getDiscountCode;
并将其称为:
valueDTO.setValue(getter.apply(pOSBean.getItemList().get(row)));