본문 바로가기
[Effective Java] 다른 타입을 쓸 수 있는 곳에서는 String 사용을 피하자. [Effective Java] 다른 타입을 쓸 수 있는 곳에서는 String 사용을 피하자. - String 으로 다른 값 타입을 대체하는 것은 좋지 않다. 파일, 네트웍, 키보드 입력으로부터 데이터가 프로그램으로 전달될 떄 문자열 형식인 경우가 많고, 그것을 그대로 놔두려는 경향이 있다. 그러나 그것은 실제로 데이터가 원문 그대로일 때만 옳다. 만일 데이터가 숫자라면 int, float, BigInteger 와 같이 적합한 숫자 타입으로 변환되어야 한다. - String 으로 enum 타입을 대체하는 것은 좋지 않다. - String 으로 집합(aggregate) 타입을 대체하는 것은 좋지 않다. ex) className + "#" + value 이런 경우 문자열 분석을 해야 해 속도가 느리고, 코드가.. 2017. 2. 6.
[Effective Java] equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. [Effective Java] equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. - 인스턴스의 동일 여부를 판정하는 equals 메소드의 오버라이딩은 간단한 것 같지만, 잘못되는 경우가 많아서 참담한 결과를 초래할 수 있다. ( 기본 equals 는 참조를 비교한다. ) - 다음의 조건이 만족된다면 슈퍼 클래스의 equals 를 그냥 사용해도 된다. 1. 클래스의 각 인스턴스가 본래부터 유일한 경우. 2. 두 인스턴스가 논리적으로 같은지 검사하지 않아도 되는 클래스의 경우. 3. 수퍼 클래스에서 equals 메소드를 이미 오버라이딩 했고, 그 메소드를 그대로 사용해도 좋은 경우. 4. private 이나 패키지 전용(package private) 클래스라서 이 클래스의 equals 메소드가.. 2015. 12. 31.
반응형