错误:类型MyExchangeClass中的方法exchangeConversion(字符串、字符串、浮点数)不适用于参数(String、String、double)
jsp文件中的代码,也有15.4和15.4f的错误,但是如果更改函数和用于double的TLD都能正常工作。为什么把15.4华氏和15.4f当作双打?
...
From GBP to USD: ${ elfuncs:exchange("GBP", "USD", 15.4f) }
Otherwise: ${ elfuncs:exchange("GBP", "YEN", 15.4) }TLD码
<function>
<name>exchange</name>
<function-class>mypackage.MyExchangeClass</function-class>
<function-signature>float exchangeConversion(java.lang.String, java.lang.String, float)</function-signature>
</function>java类公共类MyExchangeClass {的代码
public static float exchangeConversion(String from, String to, float amount) {
float calculatedAmount = 0.0f;
/* Example implementation code: */
if(from.equals("GBP") && to.equals("USD")) {
calculatedAmount = amount*1.5f;
}
return calculatedAmount;
}
}发布于 2013-02-21 13:31:34
因为在EL规范中这是这样指定的。浮点文字总是被解释为double。
1.3文字 There表达式中有布尔值、整数、浮点、字符串和null的文字。 ..。
FloatingPointLiteral构造所定义的。1.19所收句法 ..。
FloatingPointLiteral的值从Double.MIN_VALUE到Double.MAX_VALUE不等。只需将函数中的float更改为double即可。
https://stackoverflow.com/questions/15002476
复制相似问题