Android アプリの Application のサブクラスに静的変数を使用する意味はありますか。私が正しく理解していれば、アプリケーションはアプリの起動時にインスタンス化されるシングルトンであり、そのパブリック変数はグローバルになります。Application サブクラスで変数を "public static" として宣言すると、とにかくグローバルであったはずの変数を無意味にグローバルにしているのでしょうか?
ご協力いただきありがとうございます。
Android アプリの Application のサブクラスに静的変数を使用する意味はありますか。私が正しく理解していれば、アプリケーションはアプリの起動時にインスタンス化されるシングルトンであり、そのパブリック変数はグローバルになります。Application サブクラスで変数を "public static" として宣言すると、とにかくグローバルであったはずの変数を無意味にグローバルにしているのでしょうか?
ご協力いただきありがとうございます。
If I understand things correctly, the Application is a singleton that's instantiated when the app is started
はい、おそらくOSの観点からはシングルトンですが、実装しない限り、あなたのものではありません-クラスで静的参照を作成し、静的メソッドを提供しますgetInstance()
。
and its public variables will be global
真ですが、静的変数のみが直接アクセスされます。getInstance()
非静的インスタンスを取得するためにメソッドを提供する必要があります。そうしないと、クラス public 宣言された変数にアクセスできません。これまでのところ、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
には独自の意味とロジックがあり、それを参照することは危険であると同時に無意味です。
別の同様の質問に関連しているように見えるかもしれません。