当前位置: 首页 > 面试题库 >

使用类在Java中存储静态数据?

储仲渊
2023-03-14
问题内容

创建一个单独的类并将其用作仅包含静态数据变量的存储是一个坏主意吗?

我目前正在为android开发一个应用程序,但问题是Java的一般问题。

在android的情况下,我在活动之间移动,我想在该单独的类中存储一些全局/静态标志/变量,并能够从我想要的任何活动中访问它们。

PS。该数据仅在会话时间内是必需的。


问题答案:

好吧,这不是一个坏主意。您可以在Android中使用此类的类。但是这里有一个小的修正。您可以使该类扩展Application类并使用它存储数据,而不是维护一个包含静态数据的类。

这是一个例子

public class HelloApplication extends Application {
        private int globalVariable=1;

        public int getGlobalVariable() {
                return globalVariable;
        }

        public void setGlobalVariable(int globalVariable) {
                this.globalVariable = globalVariable;
        }
        @Override
        public void onCreate() {
                //reinitialize variable
        }
}

然后在您的活动中执行此操作

(HelloApplication)getApplication()).setGlobalVariable(10);
int valiable=((HelloApplication)getApplication()).getGlobalVariable();

从这里取..

谈到SharedPreference,您应该只在必须长时间存储值时才考虑使用它们。如果没有,则应该利用Application类并使用setter和getters,这是实现此目的的合法方法。



 类似资料:
  • 问题内容: 例如: 这些变量将在Java,堆或堆栈存储器中存储在哪里?它们如何存储? 问题答案: 静态方法(实际上是所有方法)以及静态变量都存储在PermGen堆的部分中,因为它们是反射数据(与类相关的数据,而不与实例相关的数据)的一部分。 更新说明: 请注意,只有变量及其技术值(原始或引用)存储在空间中。 如果你的静态变量是对对象的引用,则对象本身存储在堆的常规部分(青年/旧世代或幸存者空间)中

  • 本文向大家介绍在ABAP中存储静态属性值,包括了在ABAP中存储静态属性值的使用技巧和注意事项,需要的朋友参考一下 类的静态属性和函数池的全局变量以类似的方式处理。以抽象的方式,您可以将静态属性视为全局变量。如何使用新的内部会话重新初始化全局变量,如何使用新的内部会话重新初始化静态属性-这可以使用递归函数调用进行验证。

  • 问题内容: 有什么像在Java中吗? 这样的课是什么意思。静态类的所有方法都需要吗? 是否需要反过来,如果一个类包含所有静态方法,那么该类也应该是静态的吗? 静态类有什么用? 问题答案: Java具有静态嵌套类,但听起来你正在寻找顶级静态类。Java无法将顶级类设为静态,但是你可以像这样模拟静态类: 声明你的课程-阻止扩展课程,因为扩展静态课程没有意义 创建构造函数-防止通过客户端代码实例化,因为

  • 静态类有什么好处?

  • 问题内容: 我有一个充满实用程序功能的类。实例化它的实例没有语义,但是我仍然想调用它的方法。处理此问题的最佳方法是什么?静态课?抽象? 问题答案: 标记为final的类上的私有构造函数和静态方法。

  • 我用动物代替了我真正的代码,所以这可能看起来有点傻,但这是一个真正的问题。 我的java程序得到一个不同动物的列表,一次遍历一个动物,对每个动物做以下事情:动物被创建,动物做一些随机运动,每个运动被计数,然后程序收集运动数据,做一些分析,并继续到列表中的下一个动物。 我有一个抽象的动物类,由不同的动物对象扩展,狗,猫等等。每个都有自己的动作。在基础动物类中,有一个散列表计算动物的随机运动。 upd