You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java编译错误求助:调用数组参数方法时提示'.class' expected

解决你的Java编译错误问题

首先看你遇到的编译错误 Array3.java:13 error '.class' expected,根源是调用disp方法时的语法错误——你写了disp(arr1[]),但在Java中传递数组参数只需要直接写数组变量名arr1就行,不需要加[]。

另外,你的代码还有一个隐藏问题:disp方法里直接使用了sc对象,但sc是main方法里的局部变量,其他方法无法直接访问,这会导致另一个编译错误,得一起解决。

这里给你修正后的完整代码:

import java.util.Scanner;

class Array3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr1 = new int[3];
        // 修正:传递数组参数时直接写变量名,同时传入Scanner对象
        disp(arr1, sc); 
    }

    // 修正:新增Scanner参数,让方法能正常读取输入
    public static void disp(int arg[], Scanner sc) {
        System.out.print("Enter the elements of array: ");
        for (int i = 0; i < arg.length; i++) {
            arg[i] = sc.nextInt();
        }
        System.out.print("The elements are: ");
        // 补充:完成打印数组元素的需求
        for (int num : arg) {
            System.out.print(num + " ");
        }
    }
}

关键修正点说明:

  • 方法调用处:把disp(arr1[])改成disp(arr1, sc),数组参数直接传变量名,同时把Scanner对象作为参数传入方法,解决局部变量无法跨方法访问的问题。
  • 方法定义处:修改disp方法的参数列表,新增Scanner sc,这样方法内部就能正常调用sc.nextInt()读取输入了。
  • 额外补充了打印数组元素的循环代码,完整实现你原本“录入并打印数组”的需求。

现在这段代码可以正常编译运行:程序会先提示输入3个整数,输入完成后会立刻打印出你输入的数组元素。

内容的提问来源于stack exchange,提问作者user9596904

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:43:07