зачем нам Icomparable интерфейс? - PullRequest
2 голосов
/ 22 января 2012

Пожалуйста, уточните, у нас может быть свой собственный метод для сравнения двух объектов вместо реализации интерфейса. Также каково значение интерфейсов?

Ответы [ 2 ]

3 голосов
/ 22 января 2012

Потому что, когда какой-то другой API / код (отличный от вашего) хочет сравнить ваши пользовательские объекты / типы, тогда IComparable предоставит им реализацию сравнения независимо от того, какие у вас объекты. Они просто проверят, реализует ли ваш объект IComparable, и если он это сделает, то вызовут сравнение и отсортируют их. Некоторые сценарии, например, когда ваш пользовательский список объектов привязан к сетке, затем, когда вы нажимаете на заголовок столбца для сортировки объектов, тогда сетка будет выполнять сортировку путем сравнения.

0 голосов
/ 22 января 2012

Значение интерфейсов:

Да, у вас может быть свой собственный метод для сравнения двух объектов вместо реализации интерфейса.Тем не менее, интерфейс обеспечивает большую гибкость.Например, предположим, у вас есть список ваших объектов.Если вы вызовете list.sort (), он будет использовать предоставленный интерфейс сравнения - если вы его не предоставите, вы получите неожиданные результаты.

...