应用程序类(android)中的静态字段和非静态字段之间有什么区别?

时间:2014-05-27 20:29:53

标签: java android singleton

在我的android项目中,我在几个活动中使用了几个字段,所以我实现了这个类来保存它们:

public class MainApplication extends Application {
        private UserId userId; 
}

我也可以将UserId声明为static:

public class MainApplication extends Application {
        private static UserId userId; 
}

两个实现有什么区别?哪个更好?

编辑

我问这个问题是因为: 目前我将userId声明为非静态,我在第一个活动和数字拖车中使用它。

但有时我在第二个活动中得到NullPointerException,尽管userId在第一个活动中不为null。 所以我想也许如果我宣布它是静态的,它会解决问题吗? 谢谢

1 个答案:

答案 0 :(得分:0)

不同之处在于静态成员没有实例化,可以像java中的main方法一样直接使用,因为它也可以在不创建构造函数的情况下运行。声明静态意味着该成员在内存中只有一个副本。