1

MyClassインスタンス化できるクラスがあるかString、クラス内に定義済みの静的インスタンスがあるとします。

このようなもの:

public class MyClass {

   public final static MyClass A = new MyClass("A");
   public final static MyClass B = new MyClass("B");
   public final static MyClass C = new MyClass("C");
   ...

   public MyClass(String name) {
      ...
   }
}

ArrayList<MyClass>どういうわけかSpring構成でBeanを作成することは可能ですか? 何かのようなもの

<bean id="sequence" class="...ArrayList"> 
    <member class="...MyClass" value="A"/>
    <member ... />
    ....
</bean>

更新 1

次のように書くことは可能ですか?

<bean id="sequence" class="...ArrayList"> 
  <constructor-arg>
     <list>
         <bean class="...MyClass" constructor-arg="A"/>
         <bean class="...MyClass" constructor-arg="B"/>
         <bean class="...MyClass" constructor-arg="C"/>
     </list>
  </constructor-arg>
</bean>
4

3 に答える 3

3

春のIOCドキュメントのコレクションセクションをご覧ください。

<bean id="moreComplexObject" class="example.ComplexObject">
  <property name="someList">
    <list>
      <value>a list element followed by a reference</value>
      <ref bean="myDataSource" />
    </list>
  </property>    
</bean>
于 2012-12-23T16:27:39.050 に答える
2

あなたができること:

<bean id="myClassA" class="org.foo.MyClass"> 
   <constructor-arg>
     <bean class="java.lang.String">
       <constructor-arg value="A"/>
     </bean>   
   <constructor-arg>
</bean>

<bean id="sequence" class="java.util.ArrayList">
    <constructor-arg>
        <list>
            <ref bean="myClassA" />
            ...
        </list>
    </constructor-arg>
</bean>

ただし、最も一般的なアプローチは、最初にリスト内でリストをラップするのではなく、Beanに直接リストを挿入することです。

于 2012-12-23T16:28:45.213 に答える
2

はい。スタンドアロン Bean として作成することもできます。2 つの例については、このスレッドを参照してください。

于 2012-12-23T16:20:55.180 に答える