Effective Java 제 8장 - 메서드
매개변수 유효성 검사를 필히 진행하라! 메서드에 입력된 값은 때때로 null인지, 양수인지, 허용한 범위 내에 있는지 등등을 검사해야 한다. 이 때, java 7부터 추가된 requireNonNull, checkFromToIndex 등등을 사용하면 1줄로 검사가 끝나기도 하고 의미도 명확해 굳이 주석을 달지 않아도 된다. 내부 데이터를 보호하기 위해 복사 객체를 내놓기도 해야 한다! 만약 특정 객체의 속성을 final로 설정한다해도 해당 속성이 만약 List와 같이 내부 요소를 맘대로 수정할 수 있다면 악의적인 사용자 혹은 실수로 인해 변경된 값을 가질 수도 있다. 때문에 readonly로만 속성값을 출력하고 싶다면 진짜 속성값을 주는 것이 아니라 해당 속성값의 복사본을 Return하면 된다. 물론 복사..