Dotyczy to zarówno Java SE, jak i Androida, ponieważ umowy są identyczne.
CharSequencenie definiuje contains(CharSequence)metody. Wydaje mi się, że nie mogę znaleźć przyczyny, a włączenie tego byłoby całkiem przydatne, zapobiegając potrzebie dzwonienia w CharSequence#toString()celu sprawdzenia sekwencji znaków.
Na przykład w Androidzie użytkownicy są zmuszeni zadzwonić, Editable#toString()aby sprawdzić, czy zawiera sekwencję znaków, choć Editableimplementuje CharSequence, których można uniknąć, jeśli zostaną CharSequencezdefiniowane contains(CharSequence).
Jaki jest pomysł na wybór tego projektu? Czy jest to potencjalny nadzór, czy może ma to uzasadnienie projektowe?
containsnie jest to metoda mutacja, i nie ma metody przeszukiwanie istnieje (charAt), tak jak to się ma ?. Ponadto „ Ponieważ są to metody domyślne, nie nakładają dodatkowych wymagań na klasy implementujące CharSequence. ” - Czy niecontainsmożna zaimplementować domyślnie za pośrednictwem implreturn to String().contains(...), usuwając wymóg implementacji klas?