我有一个豆子Item<T>
,需要在一个@Configuration
类中自动装配。
@Configuration
public class AppConfig {
@Bean
public Item<String> stringItem() {
return new StringItem();
}
@Bean
public Item<Integer> integerItem() {
return new IntegerItem();
}
}
但是当我尝试@Autowire Item<String>
时,我得到以下异常。
"No qualifying bean of type [Item] is defined: expected single matching bean but found 2: stringItem, integerItem"
我该如何在Spring中自动装配泛型类型Item<T>
?
ResolvableType
API(也在答案中提供了链接)和javadoc,显然可以做到(请注意getGeneric()
方法)。 - drew moorepublic class Parent<T> {}
子类public class Child extends Parent<Integer> { }
现在:Child c = new Child(); System.out.println(((ParameterizedType)c.getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
将打印出class java.lang.Integer
。 - Michał Przybylak