Java 下面的片段中发生了什么?
我无法理解下面的snipet。我是说到底发生了什么。有人能解释一下发生了什么事吗 以下是代码片段:Java 下面的片段中发生了什么?,java,Java,我无法理解下面的snipet。我是说到底发生了什么。有人能解释一下发生了什么事吗 以下是代码片段: protected NodeService getUnprotectedNodeService() { if (this.unprotectedNodeService == null) { this.unprotectedNodeService = (NodeService) FacesHelper.getManagedBean(Fac
protected NodeService getUnprotectedNodeService()
{
if (this.unprotectedNodeService == null)
{
this.unprotectedNodeService = (NodeService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "nodeService");
}
return this.unprotectedNodeService;
}
它设置
this.unprotectedNodeService
,如果它尚未设置(并返回它),如果它已经设置,则只返回它。
似乎是一种缓存机制,可以防止多次调用重载方法。它设置
此项。如果尚未设置(并返回它),则未保护的NodeService
,如果已设置,则仅返回它。
似乎是一种缓存机制,用于防止多次调用重方法。如果未设置
unprotectedNodeService
实例变量,它将查找存储在“nodeService
”键下范围内的ManagedBean
。如果它不存在,它将被创建。它被强制转换为一个NodeService
对象并返回,同时被设置为实例变量。这必须来自JSF应用程序。查看faces config.xml
或相关的@ManagedBean
注释以查找更多信息。如果未设置unprotectedNodeService
实例变量,它将查找存储在“nodeService
”键下范围内的ManagedBean
。如果它不存在,它将被创建。它被强制转换为一个NodeService
对象并返回,同时被设置为实例变量。这必须来自JSF应用程序。查看faces config.xml
或相关的@ManagedBean
注释以查找更多信息。- 如果
为 null,则查找一个bean并 储存在此.unprotectedNodeService
这是一个不受保护的节点服务
从函数返回此.unprotectedNodeService
- 如果
为 null,则查找一个bean并 储存在此.unprotectedNodeService
这是一个不受保护的节点服务
从函数返回此.unprotectedNodeService
unprotectedNodeService
在首次使用时(而不是之前)初始化
请注意,此代码不是线程安全的。这是延迟初始化模式
字段unprotectedNodeService
在首次使用时(而不是之前)初始化
请注意,此代码不是线程安全的。实际上,它以任何方式返回
this.unprotectedNodeService
case@MarcoS:我忘了在答案的第一个“版本”上写它,但是我立即编辑了它…看看编辑过的答案。抱歉:我一定看到了你答案的第一个版本:)实际上它返回了这个。未受保护的nodeservice
case@MarcoS:我忘了在答案的第一个“版本”上写它,但是我立即编辑了它…看编辑后的答案。对不起:我一定看到了你答案的第一个版本:)