如何在应用程序执行期间将Java类保留在内存中?
我知道这是最基本的,但我真的不记得怎么做了如何在应用程序执行期间将Java类保留在内存中?,java,class,object,variables,Java,Class,Object,Variables,我知道这是最基本的,但我真的不记得怎么做了 在myMainActivity中,我将从我的 数据库 我想做的是能够从其他类访问这个util类的数据 例如,我在random类中,我想从Util获取一个属性。我该怎么做?考虑到我不能调用newutil()。。。因为它会清除我在那个类中的信息。总之,如何使内存中的对象随时随地都可以访问?将要访问的对象设为静态对象。您应该阅读有关static关键字的基本Java教程,因为当您开始处理更高级的主题(如线程和内存管理)时,使用static关键字可能会导致问题。
MainActivity
中,我将从我的
数据库例如,我在random类中,我想从
Util
获取一个属性。我该怎么做?考虑到我不能调用newutil()
。。。因为它会清除我在那个类中的信息。总之,如何使内存中的对象随时随地都可以访问?将要访问的对象设为静态对象。您应该阅读有关static关键字的基本Java教程,因为当您开始处理更高级的主题(如线程和内存管理)时,使用static关键字可能会导致问题。(静态数组列表是最差的。)
所以您有一些类Util
:
public class Util {
private static Map<String, String> data = new HashMap<>();
// assume you have some logic to populate data
// This method is static, so you don't need an instance of Util to access it
public static Map<String, String> getData() {
return data;
}
}
当然,您可以新建一个Util实例(例如,
Util myUtil=new Util()
),然后调用myUtil.getData()
——但是没有区别,如果您尝试,IDE会警告您正在这样做。使类保持静态,或者您可以保留对该类的引用,然后检索它。通常,您必须在某些时候使用静态方法,但通常最好尽可能多地使用实例。但是依赖注入是一种替代方法,也可以工作。如何将类转换为静态类?如果我尝试类似“publicstaticclassmyclass”的方法,它会给我一个错误。这些是在MainActivity
中创建的其他随机类吗?可能是Oracle的Java教程,其中包含您要查找的信息。
Map<String, String> theData = Util.getData(); // called against the class