Освен документирането (очевидно то също трябва да бъде документирано), използването на специален тип връщане (пазя се да се ограничавам до ImutableX) или потребителят да разбере по време на изпълнение, има ли някакъв друг начин да се каже на потребителите за API, че колекцията, която получават от споменатия API, е непроменяема/неизменна?
Има ли някакви конвенции за именуване или анотации на маркери, които универсално сигнализират за едно и също нещо?
Редактиране: Unmodifiable и immutable не означават едно и също нещо, но за целите на този въпрос те са достатъчно сходни. Въпросът основно се свежда до уведомяване на потребителя, че върнатият обект не спазва напълно своя договор (т.е. някои общи операции ще хвърлят изключение по време на изпълнение).
Collections.unmodifiableList
например връща обект List, който не може да се променя, но не е неизменен - не можете да извикатеadd
илиremove
илиset
върху него, но съдържанието му може да се промени по друг начин. - person user253751   schedule 03.06.2015