0

我正在尝试注入一个类列表。我想要一个类列表,而不是对象。

我的课看起来像这样:

public class CodeServiceImpl{

    private List<Class<?>> codeList;

// getter and setter

我的 spring 配置文件(我没有使用注释而是 xml)是

<bean id="myCodeServiceImpl" class = "net.croz.service.CodeServiceImpl">
        <property name="codeList">
            <list>
                <ref bean="myAddress"/>
                <ref bean="myCity"/>
                <ref bean="myCountry"/>
            </list>
        </property>
    </bean>


    <bean id="myAddress" class="java.lang.Class" factory-method="forName">
            <constructor-arg value="net.croz.model.Address"/> 
        </bean>

        <bean id="myCity" class="java.lang.Class" factory-method="forName">
            <constructor-arg value="net.croz.model.City"/> 
        </bean>

        <bean id="myCountry" class="java.lang.Class" factory-method="forName">
            <constructor-arg value="net.croz.model.Country"/>
        </bean>

但是列表 codeList 没有被填充。它最终成为一个空对象。谢谢您的帮助。

4

1 回答 1

1

实际上它是这样工作的:

<bean class="com.my.proj.Foo">
        <constructor-arg value="java.lang.String, org.springframework.util.StringUtils, byte[]"/>
</bean>

哪里Foo是:

public class Foo {

    private final List<Class<?>> codeList;

    public Foo(Class<?>... codeList) {
        this.codeList = Arrays.asList(codeList);
    }

}

ConversionService逗号分隔的字符串转换为的东西Class<?>[]并尝试使用它自己解析每个类BeanClassLoader

于 2014-05-12T09:15:53.963 回答