R's 잡다한 정보 창고

You may delay, but time will not. "Benjamin Franklin"

IT 관련/Programming

[자바오류] Array constants can only be used in initializers

RESCode 2011. 10. 5. 11:34
반응형

String[] arr = new String [3];  //배열 선언
arr = {"AS", "BS", "CS"};         //배열 할당

Array constants can only be used in initializers
배열 상수는 초기화에 사용할 수 있습니다.

배열을 선언하고 그 배열에 값을 넣어준다고 생각했는데
에러가 발생합니다. 왜 그런가 했더니

배열 초기화는 String[] arr = {"AS", "BS", "CS"}; 와 같이 사용 할 수도 있지만
이는 JAVA가 C언어 사용자들을 위해서 C언어 문법과 같이 쓸 수 있도록 지원 하는 것이지 C언어와 동일하지는 않습니다.

자바는 포인터를 직접 사용하지 않기 때문에 위와 같은 방식은 추천하지 않으며
객체 선언 new 를 사용하여 동적 메모리 할당 영역에 메모리를 잡는 방법을 사용합니다.
String[] arr = new String []{"AS", "BS", "CS"};

동적 메모리 영역을 할당 하므로 선언을 먼저하고 나중에 초기화를 할 수 있습니다.
String[] arr = null;                                //선언
arr = new String[]{"AS", "BS", "CS"};      //초기화




자바 배열 사용 예

배열 선언
int[ ] a = new int[10];       // JAVA 형식
int a[ ] = new int[10];       // C언어 형식

배열 초기화
a = new int[]{1, 2, 3}; 

배열 선언과 초기화
String[ ] arr = new String [ ]{"AS", "BS", "CS"};      // JAVA 형식
String[ ] arr  = {"AS", "BS", "CS"};                         // C언어 형식



반응형