Bagaimana cara mengonversi Stringke CharSequencedalam Java?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
Bagaimana cara mengonversi Stringke CharSequencedalam Java?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
Jawaban:
Sejak String IS-A CharSequence , Anda dapat melewati a di Stringmana pun Anda membutuhkan CharSequence, atau menetapkan a Stringke CharSequence:
CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"
public void foo(CharSequence cs) {
System.out.println(cs);
}
Jika Anda ingin mengonversi a CharSequencemenjadi String, gunakan saja toStringmetode yang harus diterapkan oleh setiap implementasi konkret dari CharSequence.
Semoga ini bisa membantu.
CharSequenceke Stringtanpa pemeran eksplisit.
Stringke CharSequence.
CharSequence. Ini hanya memberikan contoh Stringke CharSequencevariabel, dan karena Stringmengimplementasikan CharSequenceantarmuka, kode tersebut berfungsi.
Jawaban langsung:
String s = "Hello World!";
// String => CharSequence conversion:
CharSequence cs = s; // String is already a CharSequence
CharSequenceadalah antarmuka, dan Stringmengimplementasikan kelas CharSequence.
CharSequence adalah antarmuka dan String adalah salah satu implementasinya selain StringBuilder, StringBuffer dan banyak lainnya.
Jadi, sama seperti yang Anda gunakan InterfaceName i = new ItsImplementation(), Anda bisa menggunakan CharSequence cs = new String("string")atau hanyaCharSequence cs = "string";
Kamu bisa memakai
CharSequence[] cs = String[] {"String to CharSequence"};
Mencoba memberikan beberapa (mungkin) konteks untuk pertanyaan OP dengan memposting masalah saya sendiri. Saya bekerja di Scala, tetapi pesan kesalahan saya mendapatkan semua jenis referensi Java, dan pesan kesalahan banyak dibaca seperti kompiler mengeluh bahwa CharSequence bukan String. Saya mengkonfirmasi dalam kode sumber bahwa String mengimplementasikan antarmuka CharSequence, tetapi pesan kesalahan menarik perhatian pada perbedaan antara String dan CharSequence sambil menyembunyikan sumber sebenarnya dari masalah:
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)
Saya bisa memperbaiki masalah ini dengan kesadaran bahwa masalahnya bukan String / CharSequence, melainkan ketidakcocokan antara java.lang.Iterable dan Scala's built-in Iterable.
scala> val header = String.join(",", coll: _*)
header: String = Item,a,b
Masalah khusus saya juga dapat diselesaikan melalui jawaban di Scala: bergabung dengan iterable of string
Singkatnya, OP dan orang lain yang menemukan masalah serupa harus menguraikan pesan kesalahan dengan sangat cermat dan melihat konversi jenis apa yang mungkin terlibat.