В действующем Java 3 / E Item 41, Marker Annotation
Я видел следующее предложение
Возможно, интерфейс Set является именно таким ограниченным интерфейсом маркера. Он применим только к подтипам Collection, но не добавляет методов, отличных от определенных в Collection. Обычно он не считается интерфейсом маркера, поскольку он уточняет контракты нескольких методов Collection, включая add, equals и hashCode.
, а затем я нашел следующее предложение из docs
Интерфейс Set помещает дополнительные условия, помимо тех, которые унаследованы от интерфейса Collection, в контракты всех конструкторов и в контракты методов add, equals и hashCode. Объявления для других унаследованных методов также включены сюда для удобства. (Спецификации, сопровождающие эти объявления, были адаптированы к интерфейсу Set, но они не содержат каких-либо дополнительных условий.)
, так что .. в случае метода добавления
является «дополнительным условием» Означает ли это, что реализации множеств должны реализовывать метод add, чтобы избежать дублирования элемента?
, если верно, то что такое «дополнительное условие» для equals и hashcode?