Comment convertir CharSequence en Ssortingng en Java?

Comment puis-je convertir une CharSequence Java en une Ssortingng ?

En appelant sa toSsortingng() .

Retourne 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 une question subtile ici qui est un peu un piège.

La toSsortingng() a une implémentation de base dans Object . CharSequence est une interface. et bien que la toSsortingng() apparaisse dans cette interface, il n’y a rien à la compilation qui vous oblige à le remplacer et à respecter les contraintes supplémentaires que CharSequence toSsortingng() CharSequence toSsortingng() met sur la toSsortingng() ; c’est-à-dire qu’il doit retourner une chaîne contenant les caractères dans l’ordre renvoyé par charAt() .

Votre IDE ne vous aidera même pas en vous rappelant que vous devriez probablement remplacer toSsortingng() . Par exemple, dans intellij, c’est ce que vous verrez si vous créez une nouvelle implémentation CharSequence : http://puu.sh/2w1RJ . Notez l’absence de toSsortingng() .

Si vous comptez sur toSsortingng() sur une CharSequence arbitraire, cela devrait fonctionner à condition que l’implémentateur CharSequence ait correctement fait son travail. Mais si vous voulez éviter toute incertitude, vous devez utiliser un SsortingngBuilder et append() , comme ceci:

 final SsortingngBuilder sb = new SsortingngBuilder(charSequence.length()); sb.append(charSequence); return sb.toSsortingng(); 

Vous pouvez directement utiliser Ssortingng.valueOf ()

 Ssortingng.valueOf(charSequence) 

Bien que cela soit identique à toSsortingng() il effectue une vérification null sur le charSequence avant d’appeler réellement toSsortingng.

Ceci est utile lorsqu’une méthode peut renvoyer une valeur charSequence ou null .