어떻게 변환 String
에 CharSequence
자바로?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
어떻게 변환 String
에 CharSequence
자바로?
Exception groovy.lang.MissingMethodException: No signature of method: static java.util.regex.Pattern.matcher() is applicable for argument types: (java.lang.String)
답변:
String
IS-A 이므로 CharSequence
, String
필요한 곳을 전달 CharSequence
하거나을 a String
에 할당 할 수 있습니다 CharSequence
.
CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"
public void foo(CharSequence cs) {
System.out.println(cs);
}
당신은 변환하려면 CharSequence
A를 String
그냥 사용 toString
의 모든 구체적인 구현에 의해 구현되어야 방법 CharSequence
.
도움이 되길 바랍니다.
CharSequence
A와를 String
명시 적 캐스트없이.
String
를 할당하는 것을 의미했습니다 CharSequence
.
CharSequence
. 그것은 단순히의 인스턴스를 할당 String
A와 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의 질문에 대한 (가능한) 컨텍스트를 제공하려고합니다. 스칼라에서 일하고 있지만 모든 참조 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 및 유사한 문제가 발생하는 다른 사용자는 오류 메시지를 매우 자세히 분석하고 다른 유형 변환과 관련이 있는지 확인해야합니다.