с чего бы это? реализация использует ==
, а на самом деле даже ===
в вашем случае.
также, методы доступа никогда не называются.
contains
является методом ListCollectionView
и вызывает следующее:
- вызов
ListCollectionView::getItemIndex
sort == null && filterFunction == null
, таким образом:
IList::getItemIndex
Для ArrayCollection
ListCollectionView::list
- это ArrayList
, реализующий getItemIndex
как ArrayUtil.getItemIndex(item, source);
, который фактически использует строгое сравнение между элементом и записями исходного массива.
Если вы хотите, чтобы вызов оценивался как true, вам потребуется предоставить собственную реализацию IList
. Подклассы ArrayList
и переопределение getItemIndex
помогут, хотя я не уверен, что это не нарушит некоторые другие функции.