Мне нужно ввести поле, только если оно доступно в текущей области, и ноль в противном случае.Например:
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) {}
Что просто кажется неправильным.Есть ли правильный способ сделать это?