我正在编写一个Java小类,我想知道这里到底发生了什么:

public void listFile(int index)
{
    if(validIndex(index)) {
        String filename = files.get(index);
        System.out.println(filename);
    }
}


但是,我写道:

public void listFile(int index)
{
     if files.validIndex(index){
         String filename = files.get(index);
         System.out.println(filename);
     }
     else {
         System.out.println("malo");
     }
 }


因此,几乎不相等,除非:

我写了-if files.validIndex(index){-

该示例显示-if validIndex(index){-

为什么它不显示“文件”?
为什么对象不调用该方法,而是直接将该方法放在那里。好像胡说八道

最佳答案

我假设files是一个ArrayList(基于标题)。
ArrayList没有validIndex方法,因此if (files.validIndex(index))不起作用。

另一方面,代码所在的类(您未在其中包含很多)可能包含一个validIndex方法,该方法检查传递的索引在files列表中是否为有效索引。

因此,与if (validIndex(index))相同的if (this.validIndex(index))起作用。

10-06 13:37