Questo vale sia per Java SE che per Android, poiché i contratti sono identici.
CharSequencenon definisce un contains(CharSequence)metodo. Non riesco a trovare un motivo per cui, e includerlo sarebbe abbastanza utile, evitando la necessità di chiamare CharSequence#toString()per verificare la presenza di una sequenza di caratteri.
Ad esempio, in Android, gli utenti sono costretti a chiamare Editable#toString()per vedere se contiene una sequenza di caratteri, anche se Editableimplementati CharSequence, che possono essere evitati se CharSequencedefiniti contains(CharSequence).
Qual è l'idea alla base di questa scelta progettuale? È una potenziale supervisione o c'è una ragione progettuale per questo?
containsnon è un metodo di mutazione, e ci fa metodi esistono Ricerca (charAt), in modo da come si applica questo ?. Inoltre, " Poiché si tratta di metodi predefiniti, non impongono requisiti aggiuntivi per le classi che implementano CharSequence. " - Impossibilecontainsimplementare come predefinito tramite implreturn to String().contains(...), rimuovendo il requisito da implementare per le classi?