在我的android项目中,我在几个活动中使用了几个字段,所以我实现了这个类来保存它们:
public class MainApplication extends Application {
private UserId userId;
}
我也可以将UserId声明为static:
public class MainApplication extends Application {
private static UserId userId;
}
两个实现有什么区别?哪个更好?
编辑
我问这个问题是因为: 目前我将userId声明为非静态,我在第一个活动和数字拖车中使用它。
但有时我在第二个活动中得到NullPointerException,尽管userId在第一个活动中不为null。 所以我想也许如果我宣布它是静态的,它会解决问题吗? 谢谢
答案 0 :(得分:0)
不同之处在于静态成员没有实例化,可以像java中的main方法一样直接使用,因为它也可以在不创建构造函数的情况下运行。声明静态意味着该成员在内存中只有一个副本。