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>
问题是它将 BLUE
和 GREEN
视为 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>
这不是我想要的,因为我必须自己定义颜色,但它已经足够好了。
我正在尝试将 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>
问题是它将 BLUE
和 GREEN
视为 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>
这不是我想要的,因为我必须自己定义颜色,但它已经足够好了。