¿Cómo puedo convertir un Java CharSequencea un String?
java
string
charsequence
Belgi
fuente
fuente

setText(CharSequence)no hacen lo que necesita?Aquí hay un problema sutil que es un poco un problema.
El
toString()método tiene una implementación base enObject.CharSequencees una interfaz; y aunque eltoString()método aparece como parte de esa interfaz, no hay nada en tiempo de compilación que lo obligará a anularlo y respetar las restricciones adicionales que elCharSequencetoString()javadoc del método aplica altoString()método; es decir, debe devolver una cadena que contenga los caracteres en el orden devuelto porcharAt().Su IDE ni siquiera lo ayudará al recordarle que probablemente debería anularlo
toString(). Por ejemplo, en intellij, esto es lo que verá si crea una nuevaCharSequenceimplementación: http://puu.sh/2w1RJ . Tenga en cuenta la ausencia detoString().Si confía en
toString()un arbitrarioCharSequence, debería funcionar siempre que elCharSequenceimplementador haya hecho su trabajo correctamente. Pero si desea evitar cualquier incertidumbre por completo, debe usar unStringBuilderyappend(), así:fuente
CharSequenceinterfaz define explícitamentetoString(): el implementador no se lo habrá perdido. El javadoc dice "Devuelve una cadena que contiene los caracteres de esta secuencia en el mismo orden que esta secuencia. La longitud de la cadena será la longitud de esta secuencia" desde el inicio en 1.4 . Gente, verifique lo que votóStringBuilderpodría fallar en hacer lo que espera. Lo mismo ocurre con cualquier otra interfaz, tal comoListoSet, en particular, suequals()yhashCode()métodos que se compilará sin sustituciones de, pero debe ser anulado de acuerdo con el contrato.Puede usar directamente String.valueOf ()
Aunque esto es lo mismo, ya
toString()que hace una comprobación nulacharSequenceantes de llamar a toString.Esto es útil cuando un método puede devolver un valor
charSequenceonull.fuente
charSequencees nulo, la cadena devuelta será"null"y nonull.