2 回答
TA贡献1770条经验 获得超3个赞
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因此它的值在整个应用程序中或在此线程中保持不变。
TA贡献1869条经验 获得超4个赞
您可以使用延迟初始化。
private Integer usefulValue;
public ExampleClass(){
// this.usefulValue = slowMethod();
}
public int getUsefulValue(){
if (this.usefulValue == null) {
this.usefulValue = slowMethod();
}
return this.usefulValue;
}
或用于此:lombok
添加回答
举报