Spring

Spring XML 구성-java.awt.Color 값 List

기록만이살길 2021. 3. 10. 09:04
반응형

Spring XML 구성-java.awt.Color 값 List

1. 질문(문제점):

나는 List을 주입하기 위해 노력하고있어 Color에서을 java.awt.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내가 응용 프로그램을 실행할 때 내가 오류 말하는 유형 불일치를 얻을 색에 문자열을 캐스팅 할 수 없습니다. 하지만 유형을 지적했는데 무엇이 문제입니까? 이 작업을 올바르게 수행하는 방법은 무엇입니까?

클래스:

public class TwoPlayer {

  public Color[] Colors;

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

여기에 List이 아닌 ar 배열이 있다는 것을 알고 있지만 Spring에는 문제가되지 않는다고 읽었습니다.

2. 해결방안:

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>

색상을 직접 정의해야했기 때문에 정확히 원하는 것은 아니지만 충분히 좋은 솔루션입니다.

65718725
반응형