[英]jsf expression language (el) classes function life scope
el语言中使用的静态类的范围是什么?
我承担应用范围?
我在调试模式下对其进行了测试,并且该延迟加载属性仅在多个Windows浏览器中初始化一次。
private static Object[] objects = null;
public static Object[] getObjects()
{
if(ElClass.objects == null)
//init objects
return ElClass.objects;
}
没有具体实例的手段。 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.
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.