尝试在 Java 中传递双精度数组时预期为“.class”

'.class' expected when trying to pass a double Array in Java

我是Java的新手,在研究它的过程中,我发现了一个杀死我的大脑近7个小时的练习。我尝试了我所知道的一切,我再次阅读了这本书的章节,我在谷歌上搜索了几个小时的答案,甚至在这里使用了搜索按钮,但没有任何帮助。我不明白第 26 行到底有什么问题:

import java.util.Scanner;

public class Esercizio {

    public static void main(String[] args) {

        Scanner tastiera = new Scanner(System.in);
        System.out.println("");
        System.out.println("Scrivi un intero per la lunghezza dell'Array.");
        System.out.println("");

        int lunghezzaArray = 0;
        lunghezzaArray = tastiera.nextInt();

        double[] valore = new double[lunghezzaArray];

        System.out.println("");
        System.out.println("Ora scrivi i numeri che vuoi dentro, possibilmente in ordine crescente.");
        System.out.println("");

        for (int i = 0; i < valore.length; i++) {
            valore[i] = tastiera.nextDouble();}

        boolean risultato = true;

        risultato = strettamenteMaggiore(valore[]); // Here is the line!

        System.out.println("Uscira' True o False? Risultato = " + risultato);

    }

    public static boolean strettamenteMaggiore(double[] valore) {

        boolean risultato = false;

        for (int i = 0; i < valore.length; i++) {
            if (valore[i] < valore[i + 1]) {
                risultato = true;}
            else
                risultato = false;
        }

        return risultato;
    }

}

该程序是意大利语的,但我想这并不重要,变量和东西名称只是名称。 知道代码有什么问题吗?这是我第一次遇到数组和方法的这个错误。

编辑: 该练习要求编写一个名为 'strettamenteCrescente(double[] in)' 的静态方法,如果提供给输入的数组的每个值都大于它前面的值,则该方法会 returns "true"。否则,"false".

您将数组的位置传递给方法,但方法需要整个数组。

解决方法是:

risultato = strettamenteMaggiore(valore); // Here is the linee

而不是

risultato = strettamenteMaggiore(valore[]); // Here is the line!

Balduz 说得对。只需删除括号 []。在Java中,括号用于声明数组,如double[] valore,或引用数组的元素,如valore[i] .要引用数组对象本身,只需使用数组名称即可。