class Test {
private static Integer value1
= getValue
(); // This is causing to load again
private static Integer flag
= null;
if (flag != null) { // if flag is loaded already, return it.
return flag;
}
System.
out.
println("Loading value...");
return flag;
}
public static void main
(String[] args
) { getValue();
}
private static Integer value2
= getValue
(); // This will not cause to load again }
Y2xhc3MgVGVzdCB7CiAgICBwcml2YXRlIHN0YXRpYyBJbnRlZ2VyIHZhbHVlMSA9IGdldFZhbHVlKCk7IC8vIFRoaXMgaXMgY2F1c2luZyB0byBsb2FkIGFnYWluCgogICAgcHJpdmF0ZSBzdGF0aWMgSW50ZWdlciBmbGFnID0gbnVsbDsKCiAgICBwdWJsaWMgc3RhdGljIEludGVnZXIgZ2V0VmFsdWUoKSB7CiAgICAgICAgaWYgKGZsYWcgIT0gbnVsbCkgeyAvLyBpZiBmbGFnIGlzIGxvYWRlZCBhbHJlYWR5LCByZXR1cm4gaXQuCiAgICAgICAgICAgIHJldHVybiBmbGFnOwogICAgICAgIH0KCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJMb2FkaW5nIHZhbHVlLi4uIik7CgogICAgICAgIGZsYWcgPSBJbnRlZ2VyLnZhbHVlT2YoMTApOwoKICAgICAgICByZXR1cm4gZmxhZzsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgZ2V0VmFsdWUoKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBJbnRlZ2VyIHZhbHVlMiA9IGdldFZhbHVlKCk7IC8vIFRoaXMgd2lsbCBub3QgY2F1c2UgdG8gbG9hZCBhZ2Fpbgp9