gpt4 book ai didi

java - JAVA中将方法作为参数传递

转载 作者:行者123 更新时间:2023-12-02 13:34:31 24 4
gpt4 key购买 nike

我正在寻找如何在 Java 中将方法作为参数传递。我发现的每个方法都不适合我的问题。我正在做一个 Android 图像处理应用程序,我想让每个处理算法都在一个线程中运行。

问题是我发现的每个方法(lambda、Callable)都不起作用。这是我的 ImageProcessing 类,以便您可以看到不同的原型(prototype)。

public class ImgProcessing {

private static Img image;

public static void colorize(int chosencolor) {
//Stuff
}

public static void histogramEqualization() {
//stuff
}

public static void extendDynamism() {
//stuff
}

public static void toGray() {
//stuff
}

public static void convolution(int n, int typeFilter) {
//stuff
}

private static void calculConvolution(float[][] filtermatrix, int sizefilter) {
//stuff
}

public static void overexposure() {}

public static void isolate(int colorValue) {

}

public static void sepia() {

}
}

这里的目标是将像素阵列切割成许多部分作为处理器核心,并创建一个处理阵列的一部分的线程。我试图避免代码重复,因此我想要一个通用的 Thread 方法来传递我的处理方法。

类似于:

public class Worker implements Runnable {
private final int numberOfIterations;
private final float[] x = new float[12000];
Func myFunc;

public Worker(int numberOfIterations, Func myFunc) {
this.numberOfIterations = numberOfIterations;
this.myFunc = myFunc;
}

public void run() {

}

public void initThread{
// *** Main Thread ***
Thread[] threads = new Thread[8];

for (int i = 0; i < 8; i++) {
//Creating threads and calling myFunc method.
}

for (int i = 0; i < 8; i++) {
threads[i].join();
}
}
}

最佳答案

我想您应该考虑使用process方法创建一个像ImageProcessing这样的接口(interface)类。创建方法作为继承ImageProcessing的类。因此 myFunc 将是 ImageProcessing 类,您可以将其作为所需的类传递。

关于java - JAVA中将方法作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43075219/

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