¿Cómo convertir Stringa CharSequenceen 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 Stringa CharSequenceen 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 Stringlugar donde lo necesite CharSequenceo asignar un Stringa 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 CharSequencea a String, simplemente use el toStringmétodo que debe implementarse en cada implementación concreta de CharSequence.
Espero eso ayude.
CharSequencea a Stringsin un reparto explícito.
Stringa a CharSequence.
CharSequence. Simplemente asigna una instancia de Stringa una CharSequencevariable y, dado que Stringimplementa la CharSequenceinterfaz, el código funciona.
Respuesta directa:
String s = "Hello World!";
// String => CharSequence conversion:
CharSequence cs = s; // String is already a CharSequence
CharSequencees una interfaz y la Stringclase 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.