【发布时间】:2016-01-22 22:27:38
【问题描述】:
在 Spring 的 Java 配置中,我有一个 bean,注释如下:
@Bean
@Scope(value = "request", proxyMode = ScopedProxyMode.INTERFACES)
public Object foo() { ... }
此方法有时会返回 null(如果没有要实例化的内容)。在我的代码中,我想检查这种情况,例如:
@Inject
Object foo
if (foo != null)
foo.be_wise();
但这不起作用,因为 foo 被代理了,因此永远不会为空!因此,检查 null 我能找到的唯一方法是触发 NullPointerException,如下所示:
try
{
foo.dont_be_wise();
}
catch (NullPointerException e)
{
be_wise();
}
我不喜欢这样,因为抛出异常代价高昂!
还有其他方法可以检查代理 bean 是否为空吗?
【问题讨论】: