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
.