gpt4 book ai didi

java - 使用参数调用方法

转载 作者:行者123 更新时间:2023-12-01 20:03:18 24 4
gpt4 key购买 nike

这是一个关于一般编程的问题。我希望能够将参数放入函数中并让对象调用该参数,例如:

    void printCells(cell[] cellArr, String method) {
for (int i = 0; i < cellArr.length; i++) {
cell c = cellArr[i];
println(c.method);
}
}

这段代码只是一个实用函数,方便我使用,我希望能够打印单元格对象中的一些值,该对象具有 value、row、col、subrow 和 subcol 值。我想使用这个功能,例如:

    printCells(cells, subrow);

它将执行上面的 for 循环并打印 cells 数组中每个单元对象的子行值,我将其作为 cellArr 传入。

这可能吗?或者我是否需要一个很长的 if 语句,例如:

    void printCells(cell[] cellArr, String method) {
for (int i = 0; i < cellArr.length; i++) {
cell c = cellArr[i];
if (method == "row"){
println(c.row);
} else if (method == "col"){
println(c.col);
}
}

等等。请告诉我!

最佳答案

您可以使用反射来完成此操作,但使用 lambda 可能更容易:

void printCells(cell[] cellArr, Function<cell, Object> getter) {
for (cell c : cellArr)
println(getter.apply(c));
}

然后你可以用类似的方式调用它

printCells(cells, cell::getSubrow)

printCells(cells, cell -> cell.subrow) // thanks to Lino for suggestion

关于java - 使用参数调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47755594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com