Bagaimana cara mengonversi String
ke CharSequence
dalam 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 String
ke CharSequence
dalam 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 String
mana pun Anda membutuhkan CharSequence
, atau menetapkan a String
ke 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 CharSequence
menjadi String
, gunakan saja toString
metode yang harus diterapkan oleh setiap implementasi konkret dari CharSequence
.
Semoga ini bisa membantu.
CharSequence
ke String
tanpa pemeran eksplisit.
String
ke CharSequence
.
CharSequence
. Ini hanya memberikan contoh String
ke CharSequence
variabel, dan karena String
mengimplementasikan CharSequence
antarmuka, kode tersebut berfungsi.
Jawaban langsung:
String s = "Hello World!";
// String => CharSequence conversion:
CharSequence cs = s; // String is already a CharSequence
CharSequence
adalah antarmuka, dan String
mengimplementasikan 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.