자바 6에서는 더 이상 이런 역할의 유틸리티 메소드가 필요가 없다. 썬은 배열의 복사를 위한 직접 지원을 소개한다. 썬은 새로운 Arrays 클래스의 오버로드된 메소드인 copyOf 를 정의한다.
|
|
여기서는 copyOf 메소드의 행동을 시연해보기 위해 JUnit test를 몇 개 사용하였다. 여기에 기본 기능을 보여주는 첫번째 테스트가 있다.
|
|
JUnit 4의 새로운 특징중의 하나는 assertEquals를 사용한 두개의 배열의 비교 능력이다. 그 작업을 할 때, JUnit는 첫째로 각 배열의 크기를 비교한다. 만약 두 배열이 같다면 JUnit은 equals을 사용하여 각각의 요소들을 비교한다. 두 배열이 다르면, JUnit은 failure 메시지를 나타내어 부등호 값을 보여준다.
자바는 두개의 다른 변수로 기본형 타입을 지원을 위해 copyOf 를 오버로드한다. 또 다른 테스트는 원본의 범위를 지원할 수 있는 방법을 보여준다.
|
|
JUnit 4는 기본형 타입을 가지고 있는 두 배열을 비교할 수 없기에 assertEqualsPrim 메소드를 작성했다. It contains only a version that compares two Object arrays. assertEquals 를 이용해 두 기본형 타입의 배열을 비교하는 것은 자바가 메모리 비교를 하는 것을 의미한다. 별거 아니게, assertEqualsPrim 를 작성하는 것은 아주 쉽다.
|
|
What if I want the new array to be of a new, subclass type? The following test fails:
|
|
But Java 6 allows me to declare a new type for the target array on a copy:
|
|