16 May 2023 EffectiveJava
@Override
는 메서드 선언에만 달 수 있으며, 이 애너테이션이 달렸다는 것은 상위 타입의 메서드를 재정의했음을 뜻한다.
이 애너테이션을 일관되게 사용하면 여러가지 악명 높은 버그들을 예방해 준다.
다음 예제를 살펴보자. 다음 예제에는 버그 두가지가 있다. 무엇일까?
16 May 2023 EffectiveJava
전통적으로 도구나 프레임워크가 특별히 다뤄야할 프로그램 요소에는 딱 구분되는 명명 패턴을 적용해왔다.
명명 패턴
예를들어, 유명한 테스트 프레임워크중 하나인 JUnit은 버전3까지 테스트 메서드의 이름을 test로 시작하게 하였다. 효과적인 방법이지만 단점도 컸다.
첫번째로, 오타에 취약하다. test를 tset와 같은 오타가 날 경우, JUnit3는 이 메서드를 무시하고...
13 May 2023 EffectiveJava
열거 타입은 거의 모든 상황에서 이 책초판에서 소개한 타입의 안전 열거 패턴보다 우수하다.
단, 예외가 하나 있으니, 타입 안전 열거 패턴은 확장할 수 있으니 열거 타입은 그럴 수 없다는 점이다.
달리 말하면, 타입 안전 열거 패턴은 열거한 값들을 그대로 가져온 다음 값을 더 추가하여...
13 May 2023 EffectiveJava
이따금 배열이나 리스트에 원소를 꺼낼 때 ordinal 메소드로 인덱스를 얻는 코드가 있다.
class Plant { enum LifeCycle { ANNUAL, PERENNIAL, BIENNIAL } final String name;...
03 May 2023 EffectiveJava
열거한 값들이 주로 (단독이 아닌) 집합으로 사용될 경우, 예전에는 각 상수에 서로 다른 2의 거듭제곱 값을 할당한 정수 열거 패턴을 사용했다고 한다.
비트 필드
public class Text { public static final int...