티스토리 뷰
![]() |
|
문자열은 텍스트 표현과 처리에 걸맞도록 설계되었다. 그런데 문자열은 워낙 흔한 데다 자바의 문자열 지원도 아주 훌륭하기 때문에 원래 설계된 목적 외의 용도로 많이 활용하는 경향이 있다.
문자열은 값 자료형(value type)을 대신하기에 부족하다. 적절한 값 자료형이 있다면 그것이 기본 자료형이건 아니면 객체 자료형이건 상관없이 해당 자료형을 사용해야 한다.
문자열은 enum 자료형을 대신하기에는 부족하다. enum은 문자열보다 훨씬 좋은 열거 자료형 상수들을 만들어 낸다.
문자열은 혼합 자료형(aggregate type)을 대신하기엔 부족하다.
// 문자열을 혼합 자료형으로 써먹은 부적절한 사례
String compoundKey = className + "#" + i.next();
문자열은 권한(capability)을 표현하기엔 부족하다.
// 문자열 권한으로 사용하는 잘못된 예제
public class ThreadLocal {
private ThreadLocal() {}
// 주어진 이름이 가리키는 스레드 지역 변수의 값 설정
public static void set(String key, Object value);
// 주어진 이름이 가리키는 스레드 지역 변수의 값 반환
public static Object get(String key);
}
// 다음과 같이 변경하자
public final class ThreadLocal<T> {
public ThreadLocal();
public void set(T value);
public T get();
}'프로그래밍 > Java' 카테고리의 다른 글
| [이펙트 자바] 규칙52. 객체를 참조할 때는 그 인터페이스를 사용하라 (0) | 2018.01.06 |
|---|---|
| [이펙티브 자바] 규칙51. 문자열 연결 시 성능에 주의하라 (0) | 2018.01.06 |
| [이펙티브 자바] 규칙49. 객체화된 기본 자료형 대신 기본 자료형을 이용하라 (0) | 2018.01.06 |
| [이펙티브 자바] 규칙48. 정확한 답이 필요하다면 float와 double은 피하라 (1) | 2018.01.06 |
| [이펙티브 자바] 규칙47. 어떤 라이브러리가 있는지 파악하고, 적절히 활용하라 (0) | 2018.01.06 |
댓글
Copyright ⓒ 2018 moneystory.blog. All rights reserved.

