관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[자바] toArray() String배열타입으로 받을 때 주의할 점(toArray() String 형변환) 본문

자바(java)

[자바] toArray() String배열타입으로 받을 때 주의할 점(toArray() String 형변환)

막무가내막내 2019. 2. 9. 18:15
728x90

자바의 컬렉션 프레임워크에서 대부분 toArray() 메소드가 구현되어있다.


이 메소드는 컬렉션 형태로 되어있는 것들을 객체배열로 반환해준다. (리턴타입은 Object이다.)


그러나 이 toArray()메소드를 String형 배열로 받을 때 주의할 점이 있다.


예시로 살펴보겠다.



ArrayList list = new ArrayList();  //ArrayList를 생성한다.

list.add("aaa");                      //String형 문자열 2개를 리스트에 넣어준다.

list.add("bbb");


위와 같이 두개의 문자열이 들어있는 리스트가 있다고 가정한다.


1. Object[] 배열에 toArray()로 담는 경우

=> Object[] obj = (Object[]) list.toArray();

에러없이 잘 받아진다. 형변환은 생략해도된다.


2. String[] 배열에 toArray()로 담는 경우

=> String[] str = (String[]) list.toArray();

실행시 에러가난다. toArray()는 Object[]형태로 반환되고 String[]으로 형변환이 불가하기 때문이다.


따라서 String형으로 받고자하는 경우는 밑과 같은 방식으로해야한다.

String[] str = new String[list.size()];

str = (String[]) list.toArray(str);



728x90
Comments