2
Java API의 CharSequence가 인터페이스 인 이유는 무엇입니까? 이 인터페이스의 중요성은 무엇입니까?java.lang.CharSequence가 인터페이스로 설계된 이유는 무엇입니까?
Java API의 CharSequence가 인터페이스 인 이유는 무엇입니까? 이 인터페이스의 중요성은 무엇입니까?java.lang.CharSequence가 인터페이스로 설계된 이유는 무엇입니까?
기존 구현에서 리팩터링 한 것입니다. 이점 중 하나는 실제로 methods 중 하나만 필요할 때마다 입력을 "넓힐"수 있다는 것입니다.
그래서 대신에, 예를 들어
public void printEveryChar(String string) {
for (int i = 0; i < string.length(); i++) {
System.out.println(string.charAt(i));
}
}
는
당신은 당신이 String
, CharBuffer
, StringBuilder
, StringBuffer
및 기타 CharSequence
구현을 전달할 수 있다는
public void printEveryChar(CharSequence charSequence) {
for (int i = 0; i < charSequence.length(); i++) {
System.out.println(charSequence.charAt(i));
}
}
그렇게 할 수 있습니다.
이 사실 그러나 이 없음을 java.util.Regex
과 함께 사용하는 경우에만 유용합니다.)
이 추상화가 실제로 적용되는 또 다른 곳은 I/O에서 CharSequence의 변경 가능한 구현을 사용할 때입니다. 즉, 생성하지 않고 StringBuilder를 StringWriter에 전달합니다. String 먼저. – Henning
자바 regexes 잘 charsequences에서 작동하므로 정규식과 _something_있다. 사용자 정의 문자열을 전달하면 (예를 들어) 런 어웨이 regexes를 감지하고 중단 할 수 있습니다. – Kris