gpt4 book ai didi

java - 在 Activity 中声明 Final 变量与在 onCreate 方法中实例化它有什么区别?

转载 作者:行者123 更新时间:2023-12-01 21:35:43 24 4
gpt4 key购买 nike

这个:

public class LoadingActivity extends Activity  {

final private ContactManager cm = new ContactManager(this);
...

对比这个:

public class LoadingActivity extends Activity {

private ContactManager cm;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loading);
cm = new ContactManager(this);
...

我理解final的含义,该变量将无法重新实例化,但是我不确定使用哪种模式以及这如何影响垃圾收集器?我想在第二个版本中我可以使用 onDestroy 来通知垃圾收集器我已经完成了该变量。那有意义吗?有必要吗?

最佳答案

在 Android 组件类的特定情况下(例如 ActivityService ),仅使用 final -plus-initializer 方法适用于不需要的情况this 。从这些组件的基类继承的方法(例如 Activity )可能直到 super.onCreate() 之后才起作用。从 onCreate() 调用方法。

因此,在上面显示的两个示例中,第二个是正确的。

关于java - 在 Activity 中声明 Final 变量与在 onCreate 方法中实例化它有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36956928/

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