具有数组索引的调用方法

时间:2019-06-26 17:53:33

标签: java arrays methods

我有这个练习:

public class Test2 {

    public static void main (String [] args){
        int index=1;
        getArray()[index=2]++; //why???
 }

    public static int[] getArray() {
        return null;
    }

}

我认为,要调用静态方法getArray,必须编写:

getArray(); ...没有索引!

我认为此代码存在编译器错误。

您能解释一下为什么getArray() [index =2]++;编译时没有错误吗?

1 个答案:

答案 0 :(得分:3)

让我们一步一步走

  • 该方法应该返回一个int(public static int[])数组
  • 然后在索引2(whateverArray [index=2])处访问该数组
  • 最后,该访问的结果(一个int值)可以增加(whateverArray[2]++
  • 是的,这是一件很小的事情,您也可以分配一个变量,并将其用作同一条语句中的数组索引

因此,这都是合法的语法。当然,在运行时,您最终会遇到nullpointer异常。

编译器可以知道该方法返回null,但是标准javac并不关心这些细微的细节(用于方法结果)。而且任何不错的IDE都会立即告诉您,该代码在执行时会中断。