[英]Java Arraylist error
我正在編寫一個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){
-
為什么不顯示“文件”? 為什么對象不調用該方法,而是直接將該方法放在那里。 廢話
嘗試下面的代碼,並確保文件具有方法validIndex(int)
和files.validIndex(index)
返回布爾值。
public void listFile(int index){
if (files.validIndex(index)){ // make sure files.validIndex(index) returns boolean
String filename = files.get(index);
System.out.println(filename);
} else {
System.out.println("malo");
}
}
我假設files
是一個ArrayList(基於標題)。 ArrayList沒有validIndex
方法,所以if (files.validIndex(index))
不起作用。
另一方面,代碼所在的類(您未在其中包含很多內容)可能包含一個validIndex
方法,該方法檢查傳遞的索引在files
List中是否為有效索引。
因此, if (validIndex(index))
,與if (this.validIndex(index))
。
這可能只是括號錯誤:
if (files.validIndex(index))
{...}
我將假設validIndex(int i)
和listFiles(int i)
是同一類中的2個方法。
當您在未指定調用對象的情況下調用方法時,默認情況下,將在當前對象上調用該方法。 因此, validIndex(i)
等效於調用this.validIndex(i)
。
這是一個簡化的語法允許不寫this
每一次。
但是在某些情況下,使用this
可能會很有用:
this
即可)。 Class A {
Class B{
void bar(){
foo(); // calling B foo
A.this.foo(); // calling A foo
}
void foo(){}
}
int b;
void foo(){}
void do(int b){
this.b = b; // assign the value of the parameter to the member b.
foo(); // calling A foo
(new B()).bar();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.