如何在Java中转换String
为CharSequence
?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
如何在Java中转换String
为CharSequence
?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
Answers:
从String
IS-A开始 CharSequence
,您可以String
在需要的地方传递,也可以将CharSequence
分配String
给CharSequence
:
CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"
public void foo(CharSequence cs) {
System.out.println(cs);
}
如果要将a转换CharSequence
为a String
,则使用toString
必须由的每个具体实现实现的方法CharSequence
。
希望能帮助到你。
CharSequence
到String
没有明确的转换。
String
即将a 分配给a CharSequence
。
CharSequence
。它只是实例分配String
给一个CharSequence
变量,因为String
实现了CharSequence
接口,代码工作。
直接回答:
String s = "Hello World!";
// String => CharSequence conversion:
CharSequence cs = s; // String is already a CharSequence
CharSequence
是一个接口,String
该类实现CharSequence
。
CharSequence是一个接口,而String是其除StringBuilder,StringBuffer和其他许多实现之外的实现之一。
因此,就像您使用一样InterfaceName i = new ItsImplementation()
,您可以使用CharSequence cs = new String("string")
或简单地CharSequence cs = "string";
您可以使用
CharSequence[] cs = String[] {"String to CharSequence"};
尝试通过张贴自己的麻烦来为OP的问题提供一些(可能的)上下文。我正在Scala中工作,但是我收到的所有错误消息均引用Java类型,并且该错误消息的内容与编译器一样,抱怨CharSequence 不是 String。我在源代码中确认String实现了CharSequence接口,但是错误消息引起了人们对String和CharSequence之间区别的注意,同时隐藏了麻烦的真正来源:
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)
我意识到问题不是String / CharSequence,而是java.lang.Iterable和Scala内置的Iterable之间的不匹配,从而能够解决此问题。
scala> val header = String.join(",", coll: _*)
header: String = Item,a,b
我的特殊问题也可以通过Scala的答案解决:连接可迭代的字符串
总而言之,OP和遇到类似问题的其他人员应非常仔细地分析错误消息,并查看可能涉及的其他类型转换。