1

在 android 应用程序的子类中使用静态变量是否有任何意义。如果我理解正确,应用程序是一个在应用程序启动时实例化的单例,它的公共变量将是全局的。如果我在 Application 子类中将一个变量声明为“公共静态”,那么我是否只是毫无意义地创建了一个本来应该是全局的全局变量?

谢谢你的帮助。

4

1 回答 1

1

If I understand things correctly, the Application is a singleton that's instantiated when the app is started
是的,从操作系统的角度来看,它可能是一个单例,但不是从你的角度来看,除非你实现它——在你的类中创建一个静态引用并提供一个静态方法getInstance()

and its public variables will be global
是的,但只有静态变量会被直接访问。您需要提供getInstance()方法才能获取非静态实例,然后才能访问类公共声明的变量。到目前为止,从 Java 和 OOP 的角度来看,没有什么新东西。

If I declare a variable as "public static" in the Application subclass, am I just pointlessly making a variable global that would have been global anyway?
是的,您可以在其他任何地方很好地定义这些。

补充一点:无论如何,您都不应该太在意获取Application类的实例,因为这似乎是一种不好的做法。AnApplication有自己的含义和逻辑,同时获得对它的引用是危险且毫无意义的。

可能似乎与另一个类似的问题有关。

于 2013-11-14T16:21:48.440 回答