반응형
기존의 개발자들이 0부터 제한된 난수의 값을 만들라고 하는 경우에 다음의 코드를 사용하는 경우가 많다.
1 2 3 4 | private status final Random rnd = new Random(); static int random(int n) { return Math.abs(rnd.nextInt()) % n; } | cs |
위의 코드는 동일한 숫자를 뱉어내는 경우와 범위 이상에 데이터를 뱉어내기도 한다.
이는 다행 스럽게도 Random.nextInt(int) 플랫폼 라이브러리를 이용하여 해결할 수 있다.
이런 라이브러리에 내부 구현 동작을 모두 알면 좋지만, 모두 해석해서 사용하기에는 어려움이 있다.
만들어져 있는 라이브러리만 정상적으로 잘 사용한다면 시간을 낭비하지 않고 프로그램 작성에 집중할 수 있다.
그리고 계속해서 성능향상과 성능에 대한 리포트를 주기 때문에 더욱 효율적으로 사용할 수 있다.
물론 단점도 있다.
이는 원하는 일이 구체적일 경우에 그에 상응하는 라이브러리가 없을 때 그럴 수 있다. 하지만 그럴 때는 원하는 부분전까지 라이브러리 사용하고 나머지는 구현하면 된다.
요약하면 바퀴를 다시 발명하지 말고 필요한 라이브러리를 잘 사용하라.
출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙47인용.
반응형
'JAVA > Effective Java' 카테고리의 다른 글
규칙 49 - 객체화된 기본 자료형 대신 기본 자료형을 이용하라. (0) | 2018.05.29 |
---|---|
규칙 48 - 정확한 답이 필요하다면 float와 double은 피하라 (0) | 2018.05.29 |
메서드- 규칙 46 for문 보다는 for-each 문을 사용하라 (0) | 2018.05.29 |
메서드- 규칙 45 지역 변수의 유효범위를 최소화하라. (0) | 2018.05.29 |
메서드- 규칙 43 null 대신 빈 배열이나 컬렉션을 반환하라. (0) | 2018.05.29 |