gpt4 book ai didi

java - 创建通用方法以将特定方法作为参数运行

转载 作者:行者123 更新时间:2023-12-01 07:58:28 25 4
gpt4 key购买 nike

我正在尝试更改图像的亮度、对比度和其他值。我发现我在许多此类操作中使用了经典的双 for 循环,并且只是在双循环内运行一些简单的数学运算,如下所示:

public void changeBrightness(int brightness)
{
for(int i=0; i<height; i++)
{
for(int j=0; j<width; j++)
{
pixels[j][i] = MathUtils.ensureRange(pixels[j][i] + brightness,0,254);
}
}
}

但是,我现在需要创建一个具有几乎完全相同形式的changeContrast方法,并且我希望通过在设置像素的地方稍微不同的数学来使这些操作可插入。因此,我想创建一个带有双 for 循环的通用方法,该方法将执行作为参数传递的方法。在 Java 7 中我该如何解决这个问题?下面是我的想法的一个例子:

public void runPixelOperation(***pixel operation method goes here***)
{
for(int i=0; i<height; i++)
{
for(int j=0; j<width; j++)
{
pixels[j][i] = ***run pixel operation here***
}
}
}

最佳答案

为什么不使用接口(interface)来解决这个为接口(interface)而设计的问题!

interface PixelLogic {
public int doOperation();
}

class BlurLogic implements PixelLogic {
@Override
public int doOperation() {
return // some calculated value
}
}

class SomeClass {

public void runPixelOperation(PixelLogic logic) {
for(int i = 0; i < height; i++) {
for(int j = 0; j < width; j++) {
pixels[j][i] = logic.doOperation();
}
}
}

}

关于java - 创建通用方法以将特定方法作为参数运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27256376/

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