在我们公司的某些计算机上执行以下代码会导致IllegalArgumentException
被抛出:
Color sludge = new Color(133, 133, 78);
//throws IAE with message "Color parameter outside of expected range: Red Green Blue"
使用 float
参数进行等效调用而不是 :
Color sludge = new Color(0.522, 0.522, 0.306); // 133/255 = 0.522, 78/255 = 0.306
为什么会出现这种情况?为什么它只影响某些机器?
这可能与Spring中定义的这些Color
对象这样的事实有关:
<bean id="sludge" class="java.awt.Color">
<constructor-arg value="133"/>
<constructor-arg value="133"/>
<constructor-arg value="78"/>
</bean>
答案 0 :(得分:4)
更加迂腐:
<bean id="sludge" class="java.awt.Color">
<constructor-arg index="0" type="int"><value>133</value></constructor-arg>
<constructor-arg index="1" type="int"><value>133</value></constructor-arg>
<constructor-arg index="2" type="int"><value>78</value></constructor-arg>
</bean>
修改强>
同时检查this blog post
答案 1 :(得分:3)
我不是春天的专家。但您是否尝试将类型设置为 int ?
<constructor-arg type="int" value="133">