[英]Is there any difference between ThisActivityName.this.finish() and finish()
兩者之間有區別嗎?
startActivity(intent);
finish();
startActivity(intent);
ThisActivityName.this.finish();
注意: ThisActivityName
是代碼所在的活動的名稱。被告知執行ThisActivityName.this.finish();
而不是在開始新活動時僅使用finish()
。 所以我很好奇是否有任何區別。 在剛開始下一個活動的情況下。
沒有區別,它們是相同的。
通常沒有區別。
他們正在調用相同的方法 ,但是,像ThisActivityName.this.finish();
一樣調用它ThisActivityName.this.finish();
確保在不太可能發生的情況下,無論您在哪里執行代碼,都碰巧也有一個finish
方法,您將調用正確的方法。 即使在您提到要首先在哪里調用startActivity
的情況下,也不會消除調用錯誤方法的可能性,特別是使用諸如finish
這樣的通用名稱。
假設您位於活動文件中的自定義類中,該類具有已聲明的finish方法,並且該方法也不帶任何參數。 調用finish()
將調用該方法,而不是活動1。
public class WadusActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public class SomeOtherClass{
public SomeOtherClass(){
WadusActivity.this.finish(); //This calls the activity finish
finish(); //This calls the method below
}
public void finish(){
//method also named finish
}
}
}
不可能? 是。 不可能? 一點也不。
我們有基本的需求是理解this
是指在每種情況下。 當this
被原樣使用,它會參考第一包裹類實例包含關鍵字,如果我們想在層次引用更高的東西,我們需要預先設置的類名,就像你與做ThisActivityName.this
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.