Como converter Stringpara CharSequenceJava?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
Como converter Stringpara CharSequenceJava?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
Respostas:
Desde o String IS-A CharSequence , você pode passar um Stringonde quer que você precise CharSequenceou atribuir um Stringa CharSequence:
CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"
public void foo(CharSequence cs) {
System.out.println(cs);
}
Se você deseja converter um CharSequencepara a String, basta usar o toStringmétodo que deve ser implementado em todas as implementações concretas de CharSequence.
Espero que ajude.
CharSequencea a Stringsem uma conversão explícita.
Stringa a CharSequence.
CharSequence. Ele simplesmente atribui uma instância de Stringa uma CharSequencevariável e, como Stringimplementa a CharSequenceinterface, o código funciona.
Resposta direta:
String s = "Hello World!";
// String => CharSequence conversion:
CharSequence cs = s; // String is already a CharSequence
CharSequenceé uma interface e a Stringclasse é implementada CharSequence.
CharSequence é uma interface e String é uma das implementações que não são StringBuilder, StringBuffer e muitas outras.
Então, assim como você usa InterfaceName i = new ItsImplementation(), você pode usar CharSequence cs = new String("string")ou simplesmenteCharSequence cs = "string";
Você pode usar
CharSequence[] cs = String[] {"String to CharSequence"};
Tentando fornecer algum contexto (possível) para a pergunta do OP, publicando meu próprio problema. Estou trabalhando no Scala, mas as mensagens de erro estão recebendo todos os tipos Java de referência e a mensagem de erro é muito parecida com o compilador reclamando que CharSequence não é uma String. Confirmei no código-fonte que String implementa a interface CharSequence, mas a mensagem de erro chama a atenção para a diferença entre String e CharSequence enquanto oculta a fonte real do 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)
Consegui corrigir esse problema com a constatação de que o problema não era String / CharSequence, mas uma incompatibilidade entre java.lang.Iterable e o Iterable interno do Scala.
scala> val header = String.join(",", coll: _*)
header: String = Item,a,b
Meu problema específico também pode ser resolvido através das respostas em Scala: junte-se a uma iterável de strings
Em resumo, o OP e outras pessoas que se deparam com problemas semelhantes devem analisar as mensagens de erro com muita atenção e ver quais outras conversões de tipo podem estar envolvidas.