Во-первых, извиняюсь, если я использую неправильный термин, выбирая слово «семантика».
Я большой поклонник дженериков в Java для все по очевидным причинам. Это очень помогает мне, так как я работаю с огромным количеством необычных фрагментов кода, и мне часто приходится возвращаться к старому. Сегодня я обнаружил, что у меня классическая ошибка неправильного размещения параметров, о которой я, вероятно, не написал бы в те времена, когда еще не было общего - они сделали меня немного ленивым.
Я хотел бы знать, есть ли в ней языковая функция. в Java или, возможно, в качестве аналогичной концепции на других языках, которая берет типобезопасность обобщенных типов и расширяет ее до своего рода семантической безопасности. В частности, я хочу помочь отловить те ошибки, которые возникают в результате помещения правильной вещи в неправильное место.
Простой пример:
Map<String, String> myMap = new HashMap<String, String>();
String myKey = "key";
String myVal = "value";
myMap.put(myVal, myKey);
Что компилятор не поймет. Я мог бы подкласс сделать оболочки, чтобы дать мне тип String
Key
и тип Value
, я полагаю. Я мог бы назвать свои переменные, чтобы указать их использование (как я сделал в этом примере). Что еще?
Итак, мои вопросы:
Спасибо