Re[5]: Изменение hashCode и equals методов в runtime-ме
От: GarryIV  
Дата: 27.07.10 19:55
Оценка:
Здравствуйте, ЕщеНеПридумал, Вы писали:

ЕНП>>>Map sortedList = new HashMap( myHashingStrategy, myEqualizerStrategy ); // на оригинальность и правильность названия не претендую


GIV>>Тем что в java это запрещено см. доки к интерфейсам мапа\сета.


ЕНП>Если ко всем правилам по реализации equals и hashCode добавить что должна использоваться одна и таже стратегия то проблем не вижу.

ЕНП>Причем стратегия задается на уровне коллекции а не объекта.
ЕНП>Ее можно разрешить задавать только при создании коллекции и не позволять менять у уже созданной.

http://java.sun.com/javase/6/docs/api/java/util/Map.html

Там же английским по белому написано

Many methods in Collections Framework interfaces are defined in terms of the equals method.


Ты можешь делать любые (в том числе и с myEqualizerStrategy) коллекции, но если реализуешь Map или Set ты должен следовать этим правилам — equals, equals и только equals и никаких стратегий. LSP ведь никто не отменял.
WBR, Igor Evgrafov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.