Эта «функция» была результатом ошибки в EL, которая была введена в соответствии с Tomcat 6.0.16. В соответствии с главой 1.18.3 спецификации EL значение типа номера, которое является null
, должно быть принудительно использовано до 0. До того, как Tomcat 6.0.16 было «неправильно» принудительно введено в пустую строку .
В конце концов, пустая строка была на самом деле гораздо более интуитивной, чем нуль. Ребята из Tomcat в Apache получили много жалоб на это исправление, поэтому они ввели новый параметр конфигурации в духе аргумента VM в соответствии с Tomcat 6.0.17, который отключил бы это исправление.
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
ve, кстати, попросил изменить эту спецификацию, что он должен только принуждать пустые / нулевые примитивные типы к нулю и пустым / нулевым непримитивным java.lang.Number
типам для пустой строки: JSP EL issue 184 . Они мало что с ней сделали, но вопрос, по крайней мере, получил много голосов. Кто знает ... Это поведение по крайней мере действительно раздражает, потому что оно неинтуитивно.
Реляционный parametricity, кажется, свойство, которое может иметь функция, абстрагированная по типам (как дженерик в Java). Если это имеет это свойство, это означает, что это никогда не осматривает свой аргумент типа или вскрывает противоречия в нем / использует его некоторым специальным способом. Например, функциональный "идентификатор или inc" здесь не являются реляционным образом параметрическими:
public class Hey<T>
{
public T idOrInc(T var)
{
if (var instanceof Integer)
return (T)(new Integer(((Integer)var).intValue()+1));
return var;
}
public static void main(String[] args) {
Hey<Integer> h = new Hey<Integer>();
System.out.println(h.idOrInc(new Integer(10)));
Hey<Double> h2 = new Hey<Double>();
System.out.println(h2.idOrInc(new Double(10)));
}
}
вывод:
$ java Hey
11
10.0
Хорошо, просто собравшись рисковать ПОЛНЫМ предположением здесь, на основе этого
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4276578
я сказал бы, что это - математическое представление параметрического полиморфизма (дженерики).