문자열을 쓰지 말아야 할 사례
다른 값 타입을 대신하기에 적합하지 않다
•
입력받을 데이터가 진짜 문자열일 때만 사용하라.
•
‘예/아니오’ 질문의 답이라면 적절한 열거 타입이나 boolean으로 변환하라.
•
기본 타입이든 참조 타입이든 적절한 값 타입이 있다면 그것을 사용하고, 없으면 새로 작성하라.
열거 타입을 대신하기에 적합하지 않다
•
상수를 열거할 때는 문자열보다 열거 타입이 월등히 낫다.
혼합 타입을 대신하기에 적합하지 않다
•
혼합 타입 : 여러 요소가 혼합된 데이터를 의미한다.
String compoundKey = className + “#” + index.next();
Java
•
두 요소를 구분해주는 문자로 혼란스러운 결과를 초래한다.
•
각 요소를 개별로 접근하려면 파싱해야 하는데 느리고, 귀찮고, 오류 가능성도 커진다.
•
String이 제공하는 기능에만 의존해야 한다.
•
보통 private 정적 멤버 클래스로 선언하는 편이 좋다.
public class Compound {
private CompoundKey compoundKey;
private static class CompoundKey {
private String className;
private String delimiter;
private int index;
public CompoundKey(String className, String delimiter, int index) {
this.className = className;
this.delimiter = delimiter;
this.index = index;
}
}
}
Java
권한을 표현하기에 적합하지 않다.
•
문자열 대신 위조할 수 없는 키를 권한(capacity)라고 한다.
•
ex) 스레드 지역변수
핵심 정리
•
적합한 데이터 타입이 있거나 새로 작성할 수 있다면 문자열 대신 사용하라.
•
문자열은 잘못 사용하면 번거롭고, 덜 유연하고, 느리고, 오류 가능성도 크다.