el语言中使用的静态类的范围是什么?
我假设申请范围?
我在调试模式下对它进行了测试,并且延迟加载的属性仅在多个窗口,浏览器中初始化一次。
private static Object[] objects = null;
public static Object[] getObjects()
{
if(ElClass.objects == null)
//init objects
return ElClass.objects;
}
答案 0 :(得分:1)
没有具体实例的手段。 EL函数类甚至没有构造。 EL功能旨在完全无国籍。静态变量是JVM范围内的每个定义(或称为应用程序范围)。在普通的Java代码中,您也只需ELClass.getObjects()
而不是new ELClass().getObjects()
。
至于您的特定示例,我建议仅在静态初始化程序块中进行初始化。懒惰的加载是不必要的。
private static final Object[] objects;
static {
// Init objects.
}
public static Object[] getObjects() {
return objects;
}
我还建议添加一个私有构造函数,以防止可以构造函数类。
private ELClass() {
// Prevent construction.
}