我有一个矩阵类,我想在这个类中创建一个名为 map 的函数,它看起来像这样:
当我从我的主类发送调用时,我只能使用像参数这样的参数进行调用。
有没有一种方法在Java中传递方法作为参数而不需要输入它们的参数?
```map(function)```
该函数与常规的 map 函数类似,将一个函数应用于矩阵中的每个元素,然后返回一个新的矩阵。请帮我完成这个函数的实现。 public void map(T fn) {
//do something
}
该函数的理念是将任何方法作为参数fn传递,并将此方法应用于矩阵中的每个数字。
这个想法来自于关于神经网络的编码培训视频,但是我尝试在Java中进行操作却失败了。我搜索了Lambda表达式,但当我使用它时,它只允许我传递带有内部参数的方法,比如Math.cos(arg)。 但是我希望可以不带参数传递。 当前的函数看起来像这样:
interface lambda<T> {
double foo(T fn);
}
public void map(T fn) {
for(int i = 0 ; i< this.getRow() ; i++) {
for(int j = 0 ; j< this.getCol(); j++) {
int a = i;
int b = j;
lambda mycode = (T) -> setData(matrix[a][b], fn);
matrix[i][j] = mycode.foo(fn);
}
}
}
private double setData(double data, T fn) {
data = (double) fn;
return data;
}
当我从我的主类发送调用时,我只能使用像参数这样的参数进行调用。
matrix.map(Math.cos(matrix.getData(0,0))
但是它应用于矩阵中每个值的数据在0,0处的cos值。
我希望它看起来更像这样。
matrix.map(Math.cos())
甚至更多
Matrix.map(function())
有没有一种方法在Java中传递方法作为参数而不需要输入它们的参数?
Math::cos
。 - Henry