2009-11-12 3 views

답변

8

기존 구현에서 리팩터링 한 것입니다. 이점 중 하나는 실제로 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과 함께 사용하는 경우에만 유용합니다.)

+2

이 추상화가 실제로 적용되는 또 다른 곳은 I/O에서 CharSequence의 변경 가능한 구현을 사용할 때입니다. 즉, 생성하지 않고 StringBuilder를 StringWriter에 전달합니다. String 먼저. – Henning

+0

자바 regexes 잘 charsequences에서 작동하므로 정규식과 _something_있다. 사용자 정의 문자열을 전달하면 (예를 들어) 런 어웨이 regexes를 감지하고 중단 할 수 있습니다. – Kris

관련 문제