ejyoo's 개발 노트

java.lang.ClassCastException 본문

BackEnd/Java Exception 처리

java.lang.ClassCastException

ejyoovV 2021. 3. 3. 10:26
  • 🤜🏻상황1
    • 풀 오류
      Exception in thread "main" java.lang.ClassCastException: 
      [Ljava.lang.Object; cannot be cast to 
      [Ljava.lang.String; at kr.or.ddit_basic.T01_ArrayListTest.main(T01_ArrayListTest.java:78)
    • 발생상황 : 리스트 데이터를 toArray로 변환한 후 String[]으로 받아올때 오류 발생
    • 해결방법 : 제너릭타입의 0개짜리 배열을 생성한 후 매개변수로 넣어주어야 함.
    List<String> list2 = new ArrayList<String>(); 
    // 리스트의 제너릭타입에 맞는 자료형의 배열로 변환하는 방법 
    // 제너릭타입의 0개짜리 배열을 생성해서 매개변수로 넣어준다. 
    // 배열의 크기가 리스트 크기보다 작으면 리스트의 크기에 맞는 배열을 넣어준다. 
    String[] strArr2 = list2.toArray(new String[0]); 
    // String[] strArr2 = (String[])list2.toArray();//컴파일 에러 
    System.out.println("strArr2의 개수 : " + strArr2.length);