현재 범위에서 사용할 수있는 경우에만 필드를 삽입해야하며 그렇지 않으면 null입니다. 예를 들면 :선택 Guice의 스코프 삽입
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) {}
이는 모든 방식이 잘못되었다고 느낍니다. 이것을 할 수있는 적절한 방법이 있습니까?
우리는 "범위 안에"있는지 어떻게 확인할 수 있습니까? – BrunoJCM