Java - 数组和方法参数

时间:2012-02-28 20:37:54

标签: java arrays

如何将文件名数组传递给以下方法:

public static double getFitness(int x, int y, int r, BufferedImage image);

我目前有一个方法可以从给定目录创建一个文件名数组:

//Default image directory (to convert to greyscale).
static File dir = new File("images");
//Array of original image filenames.
static File imgList[] = dir.listFiles();

public static void processGreyscale(){
    if(dir.isDirectory()){
        for(File img : imgList){
            if(img.isFile()){
                //functions are carried out here.
            }
            else{
                                    //functions are carried out here.
            }
        }
    }
}

getFitness方法根据主要感兴趣区域(ROI)对图像的适用度(...BufferedImage image);)进行评分。

我正在寻找的是一种在文件名数组上运行getFitness方法的方法;像这样的东西:

public static double getFitness(int x, int y, int r, fileArray)

可以这样做吗?

更新

谢谢大家的好建议;但是,我应该提一下,如果改变传递的参数,我希望保持方法参数相同/不变,因为适应度函数会受到影响(负面)。

有没有办法在imgList[]内的所有文件/文件名上运行适应度函数?

我希望的是:

public static double getFitness(int x, int y, int r, BufferedImage image){
    use filenames stored in imgList[] to take place of 'image'
    getFitness of `image`
    next image name
}

这个可能吗?

4 个答案:

答案 0 :(得分:3)

是的,这是可能的。

这是方法签名:

public static double getFitness(int x, int y, int r, File[] fileArray)

这是调用代码:

getFitness(1, 1, 1, imgList);

答案 1 :(得分:1)

刚刚传递数组?

public static double getFitness(int x, int y, int r, File[] files);

答案 2 :(得分:0)

您可以将参数类型指定为File [] fileArray

答案 3 :(得分:0)

你可以做到 File fileArray[] = new File[numberOfFiles]; 然后指定一个计数器来存储在数组中,例如counter = 0,并在每次将fileName添加到数组counter时增加fileArray[counter] = img.getName(); counter++;的值

然后以您想要的方法public static double getFitness(x, y, r, fileArray);

发送数组