Wie konvertiert man String
in CharSequence
in Java
Seit String
IS-A CharSequence
können Sie eine String
überall dort übergeben, wo Sie eine CharSequence
benötigen, oder einer String
eine CharSequence
zuweisen:
CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"
public void foo(CharSequence cs) {
System.out.println(cs);
}
Wenn Sie eine CharSequence
in eine String
konvertieren möchten, verwenden Sie einfach die toString
-Methode, die von jeder konkreten Implementierung von CharSequence
implementiert werden muss.
Ich hoffe es hilft.
Klare Antwort:
String s = "Hello World!";
// String => CharSequence conversion:
CharSequence cs = s; // String is already a CharSequence
CharSequence
ist eine Schnittstelle und die String
Klasse implementiert CharSequence
.
CharSequence ist eine Schnittstelle und String ist eine der Implementierungen außer StringBuilder, StringBuffer und vielen anderen.
So wie Sie InterfaceName i = new ItsImplementation()
verwenden, können Sie CharSequence cs = new String("string")
oder einfach CharSequence cs = "string";
verwenden.
Sie können verwenden
CharSequence[] cs = String[] {"String to CharSequence"};
Versuch, einen (möglichen) Kontext für die Frage von OP bereitzustellen, indem ich meine eigenen Probleme poste. Ich arbeite in Scala, aber die Fehlermeldungen Ich bekomme alle Java-Referenztypen, und die Fehlermeldung liest sich ähnlich wie der Compiler, der beschwert, dass CharSequence nicht ein String ist. Ich habe im Quellcode bestätigt, dass String die CharSequence-Schnittstelle implementiert, aber die Fehlermeldung macht auf den Unterschied zwischen String und CharSequence aufmerksam, während die eigentliche Ursache des Problems verborgen wird:
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)
Ich konnte dieses Problem mit der Erkenntnis beheben, dass es sich nicht um String/CharSequence handelte, sondern um ein Missverhältnis zwischen Java.lang.Iterable und Scala Iterable.
scala> val header = String.join(",", coll: _*)
header: String = Item,a,b
Mein spezielles Problem kann auch über die Antworten unter Scala gelöst werden: Join einer iterierbaren Zeichenkette
Zusammenfassend können OP und andere, die auf ähnliche Probleme stoßen, die Fehlernachrichten sehr genau analysieren und sehen, welche anderen Typkonvertierungen möglich sind.