包含java.awt.color值的列表

xmakbtuz  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(326)

我正在尝试注入一个 Colorjava.awt.Color 在我的豆子里。在我的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>

问题是它看到了 BLUE 以及 GREEN 作为 String 因此,当我运行应用程序时,我得到一个错误,说类型不匹配,无法将字符串转换为颜色。但我指出了类型,那么问题是什么?如何正确操作?
班级:

public class TwoPlayer {

  public Color[] Colors;

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

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

beq87vna

beq87vna1#

试试这个:

<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>

请在评论部分告诉我是否有用。

ghg1uchk

ghg1uchk2#

受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>

这不完全是我想要的,因为我必须自己定义颜色,但这是足够好的解决方案。

相关问题