Что такое реляционный parametricity?

Эта «функция» была результатом ошибки в 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 . Они мало что с ней сделали, но вопрос, по крайней мере, получил много голосов. Кто знает ... Это поведение по крайней мере действительно раздражает, потому что оно неинтуитивно.

См. Также:

7
задан Claudiu 11 November 2008 в 18:03
поделиться

2 ответа

Реляционный 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
2
ответ дан 7 December 2019 в 01:28
поделиться

Хорошо, просто собравшись рисковать ПОЛНЫМ предположением здесь, на основе этого

http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4276578

я сказал бы, что это - математическое представление параметрического полиморфизма (дженерики).

1
ответ дан 7 December 2019 в 01:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: