【发布时间】:2011-06-07 13:40:21
【问题描述】:
只有在当前范围内可用时才需要注入字段,否则为 null。例如:
public class Thinger implements Provider<SomeSuch> {
public @Inject(optional=true) HttpServletRequest request;
public SomeSuch get() {
return request == null ? new WhosIt() : WhatsIt();
}
}
但是,如果 HttpServletRequest 已绑定(确实如此)但不在范围内,我会收到 ProvisioningException。我已经能够找到一种优雅的方式来做到这一点,所以我只能做类似的事情。
HttpServletRequest request = null;
try {
request = injector.getInstance(HttpServletRequest.class);
} catch(ProvisioningException e) {}
这感觉有点不对劲。有没有合适的方法来做到这一点?
【问题讨论】:
标签: java scope guice optional inject