내가 지우개 유형의 희생자가 될 수 있다고 생각하지만 처음에는 다른 사람들과 먼저 확인해 볼 것이라고 생각했습니다.Java Generics 호 (봄)
public interface FooFactory {
public <T extends Bar> Foo<T> createFoo(Class<T> clazz);
}
이 코드를 작성하는 완벽하게 유효합니다
나는 이런 식으로 뭔가를 할 수있는 요구 사항을 가지고있다. 그러나 스프링 BeanFactory
을 사용하여이 기능을 구현하려고하는데 할 수 없습니다.
내가 뭘하려는 당신이 볼 수 있듯이
public class FooFactoryImpl implements BeanFactoryAware {
private BeanFactory beanFactory;
public <T extends Bar> Foo<T> createFoo(Class<T> clazz) {
return beanFactory.getBean(?????????);
}
public void setBeanFactory(BeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
}
, 내가 넣어했습니다 ... 이것이다 ???????? 여기서 나는 타입 Foo<T>
의 빈을 검색하고 싶습니다. 여기서 T는 Bar를 확장합니다. 그러나, 유형 Foo<T>
의 클래스 객체를 파생시킬 수 없으므로 내가하려는 것은 불가능하다고 가정합니다.
다른 사람이 이것을 시도하거나 내가 수행하려고 시도하는 것을 구현하는 다른 방법을 본 적이 있습니까?
감사합니다,
앤드류
'clazz' 매개 변수는 무엇입니까? –
왜 콩 공장을 사용하려고합니까? 확실히 표준 Spring 설정을 사용하여이를 수행 할 수 있습니까? –
@Rob 사람들은 bean factory를 사용하여 때때로 게으른 것을 제어하거나 여러 인스턴스를 얻기 위해 프로토 타입을 이용하는 것보다 수명을 더 세밀하게 제어합니다. – bmargulies