Réponses:
En invoquant sa toString()méthode.
Renvoie une chaîne contenant les caractères de cette séquence dans le même ordre que cette séquence. La longueur de la chaîne sera la longueur de cette séquence.
Il y a un problème subtil ici qui est un peu un piège.
La toString()méthode a une implémentation de base dans Object. CharSequenceest une interface; et bien que la toString()méthode apparaisse dans le cadre de cette interface, rien au moment de la compilation ne vous obligera à la remplacer et à respecter les contraintes supplémentaires que CharSequence toString()javadoc de la toString()méthode impose à la méthode; c'est-à-dire qu'il doit retourner une chaîne contenant les caractères dans l'ordre retourné par charAt().
Votre IDE ne vous aidera même pas en vous rappelant que vous devriez probablement passer outre toString(). Par exemple, dans intellij, c'est ce que vous verrez si vous créez une nouvelle CharSequenceimplémentation: http://puu.sh/2w1RJ . Notez l'absence detoString() .
Si vous comptez sur toString()un arbitraire CharSequence, cela devrait fonctionner à condition que l' CharSequenceimplémenteur ait fait son travail correctement. Mais si vous voulez éviter toute incertitude, vous devez utiliser un StringBuilderet append(), comme ceci:
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
CharSequenceinterface définit explicitement toString()- l' implémenteur ne l'aura pas manqué. Le javadoc déclare "Renvoie une chaîne contenant les caractères de cette séquence dans le même ordre que cette séquence. La longueur de la chaîne sera la longueur de cette séquence" depuis sa création en 1.4 . Les gens, veuillez vérifier ce que vous votez
StringBuilderpourrait tout aussi bien ne pas faire ce que vous attendez. Il en va de même pour toute autre interface, telle que Listou Set, en particulier leur equals()et les hashCode()méthodes qui seront compilées sans dérogation, mais qui doivent être remplacées conformément au contrat.
Vous pouvez directement utiliser String.valueOf ()
String.valueOf(charSequence)
Bien que cela soit le même que toString()pour une vérification nulle sur charSequenceavant d'appeler réellement toString.
Ceci est utile lorsqu'une méthode peut renvoyer une valeur charSequenceou null.
charSequenceest nul alors la chaîne retournée sera "null"et non null.
setText(CharSequence)ne fait-il pas ce dont vous avez besoin?