gpt4 book ai didi

java - 在不同的java类中使用已经初始化的类,

转载 作者:行者123 更新时间:2023-11-30 02:00:45 26 4
gpt4 key购买 nike

我是 Java 新手,正在构建一个 springboot 应用程序,其中不同的类需要来自同一源的数据。源是几个文件,但重要的是需要相当长的时间才能获取数据;取出所有数据与取出不同类所需的每个数据一样快,因此对函数进行分区没有帮助。

因此,我希望有一个类初始化一次,获取所有数据,然后为需要数据的类提供服务。理想情况下,仅在请求时才对其进行初始化,然后将数据保存在实例中。

假设我有这样的类(class):

package myapp;
import java.util.concurrent.TimeUnit;
import java.lang.InterruptedException;

public class ExampleClass {
private int usefulValue;

public ExampleClass(){
this.usefulValue = slowMethod();
}

private int slowMethod(){ //just an example of something that takes time
int usefulValue;
try {
TimeUnit.SECONDS.sleep(500);
} catch (InterruptedException e){
;
}
usefulValue = 15;
return usefulValue;

}
public int getUsefulValue(){
return this.usefulValue;
}
}

如何才能让它运行并让 usefulValue 可供包中的其他类使用,而无需在每个单独的类中重新加载它?

这些值在内存方面非常易于管理,我正在专门寻找内存中的解决方案;我可以将其写入文件/数据库,或者运行一个为应用程序提供服务的套接字服务器,但问题与 Java 中可以执行的操作有关。

诗。 usefulValue 大约每天更改一次

最佳答案

package myapp;
import java.util.concurrent.TimeUnit;
import java.lang.InterruptedException;

public class ExampleClass {
public static int usefulValue;

public ExampleClass(){
ExampleClass.usefulValue = slowMethod();
}

private int slowMethod(){ //just an example of something that takes time
int usefulValue;
try {
TimeUnit.SECONDS.sleep(500);
} catch (InterruptedException e){
;
}
usefulValue = 15;
return usefulValue;

}
public int getUsefulValue(){
return ExampleClass.usefulValue;
}
}

此外,在任何其他类中,您都可以像 ExampleClass.usefulValue 一样使用它的值,因此它的值在整个应用程序中或在此线程中保持不变。

关于java - 在不同的java类中使用已经初始化的类,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52919160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com