문자열을 쓰지 않아야하는 경우
1. 문자열로 다른 값 타입을 대신하는 경우
받는 데이터가 수치형이라면 int, float, BigInteger 등 적당한 수치 타입으로 변환합니다.
2. 문자열로 열거 타입을 대신하는 경우
상수를 열거할 때는 열거타입이 월등히 낫습니다.
3. 문자열로 혼합 타입을 표현하는 경우

java
String compoundKey = className + "#" + i.next();
이 경우 className이나 i.next()에 #이 들어가면 혼란스러운 결과를 초래합니다. 각 요소를 개별로 접근하려면 문자열을 파싱해야 해서 느리고, 오류 가능성도 커집니다.
또한, 적절한 equals, toString, compareTo 메서드를 제공할 수 없으며 String이 지원하는 기능에만 의존해야합니다.
4. 문자열로 권한을 표현하는 경우

java
public class ThreadLocal { private ThreadLocal() {} public static void set(String key, Object value); public static Object get(String key); }
스레드 구분용 문자열 키가 전역 이름공간에 공유된다는 문제가 있습니다.
반응형