¿Cómo convertir String
a CharSequence
en Java?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
¿Cómo convertir String
a CharSequence
en Java?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
Respuestas:
Desde String
IS-A CharSequence
, puede pasar un String
lugar donde lo necesite CharSequence
o asignar un String
a CharSequence
:
CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"
public void foo(CharSequence cs) {
System.out.println(cs);
}
Si desea convertir un CharSequence
a a String
, simplemente use el toString
método que debe implementarse en cada implementación concreta de CharSequence
.
Espero eso ayude.
CharSequence
a a String
sin un reparto explícito.
String
a a CharSequence
.
CharSequence
. Simplemente asigna una instancia de String
a una CharSequence
variable y, dado que String
implementa la CharSequence
interfaz, el código funciona.
Respuesta directa:
String s = "Hello World!";
// String => CharSequence conversion:
CharSequence cs = s; // String is already a CharSequence
CharSequence
es una interfaz y la String
clase implementa CharSequence
.
CharSequence es una interfaz y String es una de las implementaciones distintas de StringBuilder, StringBuffer y muchas otras.
Entonces, tal como lo usas InterfaceName i = new ItsImplementation()
, puedes usar CharSequence cs = new String("string")
o simplementeCharSequence cs = "string";
Puedes usar
CharSequence[] cs = String[] {"String to CharSequence"};
Intento proporcionar un contexto (posible) para la pregunta de OP publicando mi propio problema. Estoy trabajando en Scala, pero en los mensajes de error obtengo todos los tipos de Java de referencia, y el mensaje de error se parece mucho al compilador quejándose de que CharSequence no es una cadena. Confirmé en el código fuente que String implementa la interfaz CharSequence, pero el mensaje de error llama la atención sobre la diferencia entre String y CharSequence mientras oculta la fuente real del problema:
scala> cols
res8: Iterable[String] = List(Item, a, b)
scala> val header = String.join(",", cols)
<console>:13: error: overloaded method value join with alternatives:
(x$1: CharSequence,x$2: java.lang.Iterable[_ <: CharSequence])String <and>
(x$1: CharSequence,x$2: CharSequence*)String
cannot be applied to (String, Iterable[String])
val header = String.join(",", cols)
Pude solucionar este problema al darme cuenta de que el problema no era String / CharSequence, sino una falta de coincidencia entre java.lang.Iterable y el Iterable incorporado de Scala.
scala> val header = String.join(",", coll: _*)
header: String = Item,a,b
Mi problema particular también se puede resolver a través de las respuestas en Scala: unirse a un iterable de cadenas
En resumen, OP y otros que se encuentran con problemas similares deben analizar los mensajes de error muy de cerca y ver qué otro tipo de conversiones pueden estar involucradas.