gpt4 book ai didi

java - ThisActivityName.this.finish() 和 finish() 之间有什么区别

转载 作者:行者123 更新时间:2023-12-01 18:14:57 24 4
gpt4 key购买 nike

这两者有区别吗?

startActivity(intent);
finish();

startActivity(intent);
ThisActivityName.this.finish();

注意: ThisActivityName是代码所在 Activity 的名称。我被告知执行 ThisActivityName.this.finish();而不仅仅是finish()当开始一项新 Activity 时。所以我很好奇是否有什么不同。在我刚刚开始下一个 Activity 的场景中。

最佳答案

简单答案

通常没有什么区别。

更长的咆哮

它们调用相同的方法,但是,像 ThisActivityName.this.finish(); 那样调用它可以确保在不太可能发生的情况下,无论您在何处执行代码碰巧还有一个 finish 方法,您将调用正确的方法。即使在您提到首先调用 startActivity 的情况下,这并不能消除调用错误方法的可能性,特别是使用诸如 finish 之类的通用名称>.

假设您位于 Activity 文件内的自定义类中,该类声明了一个完成方法,并且该方法也恰好不带参数。调用 finish() 将调用该方法而不是 Activity 方法。

示例代码

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

关于java - ThisActivityName.this.finish() 和 finish() 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30233958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com