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
相关产品推荐
相关产品推荐

