Добавление инвариантов к интерфейсам в Java

Я думал о создании платформы Java, которая позволила бы программистам указывать инварианты (пред - и постусловия) в интерфейсах. Цель состояла бы в том, чтобы сделать код более устойчивым и сократить количество модульных тестов, которые должны будут быть записаны для различных реализаций того же интерфейса.

Я предусматриваю создавать некоторый способ аннотировать методы инвариантами, которые также записал бы программист. НАПРИМЕР.

interface Sort {
    int [] sort(int [] nums);
}

был бы украшен аннотацией, чтобы гарантировать, чтобы любые реализации возвратили отсортированный список. Эта аннотация была бы связана с модульным тестом, который мог быть выполнен во время компиляции против любой реализации.

Действительно ли это - сумасшедшая идея, или это было бы полезно для более широкого сообщества программирования?

6
задан Matt Ball 22 July 2010 в 15:24
поделиться