带有空参数的 coerceToType 方法的行为更改

在向 coerceToType(Object obj, Class<?> targetType) 的第一个参数提供空值时,Expression Language 3.0 引入了行为更改。空值到非原语类型的缺省强制转换现在会返回空值。在以下示例中,强制转换为布尔值的空值现在会返回空值,而在 JavaServer Pages (JSP) 2.2 中,它会返回 false。

 // factory 是 javax.el.ExpressionFactory Boolean bool=null;
factory.coerceToType(bool , java.lang.Boolean.class); 

该规则在将原语包装程序对象作为第二个参数传递时会标记对 javax.el.ExpressionFactory coerceToType 方法的调用。请复查应用程序以确保它能够在这种情况下处理空的返回值。

有关 Java EE 7 EL 3.0 实现的更多信息,请参阅 Expression Language 3.0 feature functions