Questo vale sia per Java SE che per Android, poiché i contratti sono identici.
CharSequence
non 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 Editable
implementati CharSequence
, che possono essere evitati se CharSequence
definiti contains(CharSequence)
.
Qual è l'idea alla base di questa scelta progettuale? È una potenziale supervisione o c'è una ragione progettuale per questo?
contains
non è 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. " - Impossibilecontains
implementare come predefinito tramite implreturn to String().contains(...)
, rimuovendo il requisito da implementare per le classi?