Java中修改数组元素出现“method call expected”错误原因咨询
问题分析:"method call expected" 错误原因及修复
一眼就能看到问题出在你代码的最后一行:disco(5)=true;。
咱们来拆解下为什么编译器会报错:
- 在Java里,访问数组元素必须用方括号
[],比如disco[5]表示取数组disco的第6个元素(因为数组索引从0开始)。 - 而你写的
disco(5),编译器会把它当成是调用一个名为disco的方法,并且给这个方法传参数5。但实际上disco是你定义的boolean数组,根本不是方法。更关键的是,你还试图给这个“方法调用”的结果赋值true——这在语法上完全说不通,所以编译器就抛出了"method call expected"的错误。
把这行代码改成方括号就能解决问题了,下面是修正后的完整代码:
public class test { public static void main(String[] args) { double[] d = new double[500]; for (int i = 0; i < 500; i++) { d[i] = Integer.MAX_VALUE; } boolean[] disco = new boolean[500]; // 这里可以省略循环初始化,boolean数组默认元素都是false // for (int i = 0; i < 500; i++) { // disco[i] = false; // } disco[5] = true; // 修正:用方括号访问数组元素 } }
另外给你个小优化建议:Java中boolean类型的数组在创建时,所有元素会自动初始化为false,所以你那手动循环赋值的代码完全可以删掉,能让代码更简洁。
内容的提问来源于stack exchange,提问作者krise
相关产品推荐
相关产品推荐

