Spring xml 配置 - 包含 java.awt.Color 值的列表

Spring xml configuration - list with java.awt.Color values

我正在尝试将 java.awt.Color 中的 Color 列表注入到我的 bean 中。在我的 XML 中,我有:

<bean id="twoPlayers" class="basic.TwoPlayer">
            <property name="Colors">
                <list value-type="java.awt.Color">
                    <value>BLUE</value>
                    <value>GREEN</value>
                </list>
            </property>
        </bean>

问题是它将 BLUEGREEN 视为 String 所以当我 运行 应用程序时我收到一条错误消息说类型不匹配,无法转换字符串填色。但是我指出了类型,那有什么问题呢?如何正确执行此操作?

class:

public class TwoPlayer {

  public Color[] Colors;

  public void setColors(Color[] colors) {
    Colors = colors;
  }
  ...
}

我知道我这里有 ar 数组,不是列表,但我读过这对 Spring 来说不是问题。

试试这个:

<bean id="blue" class="java.awt.Color.BLUE" />

<bean id="green" class="java.awt.Color.GREEN" />


<bean id="twoPlayers" class="basic.TwoPlayer">
    <property name="Colors">
        <list value-type="java.awt.Color">
            <ref bean="blue"/>
            <ref bean="green"/>
        </list>
    </property>
</bean>

如果有帮助,请在评论部分告诉我。

受 Vinayak Mittal 回答的启发(抱歉,我不能赞成你的回答,我没有足够的声誉),我决定采用这样的方法:

<bean id="blue" class="java.awt.Color">
        <constructor-arg index="0" type="int"><value>0</value></constructor-arg>
        <constructor-arg index="1" type="int"><value>6</value></constructor-arg>
        <constructor-arg index="2" type="int"><value>234</value></constructor-arg>
    </bean>

    <bean id="green" class="java.awt.Color">
        <constructor-arg index="0" type="int"><value>29</value></constructor-arg>
        <constructor-arg index="1" type="int"><value>172</value></constructor-arg>
        <constructor-arg index="2" type="int"><value>32</value></constructor-arg>
    </bean>

<bean id="twoPlayers" class="basic.TwoPlayer">
    <property name="Colors">
        <list value-type="java.awt.Color">
            <ref bean="blue"/>
            <ref bean="green"/>
        </list>
    </property>
</bean>

这不是我想要的,因为我必须自己定义颜色,但它已经足够好了。