프론트와 서버간 데이터를 통신할때 다음과 같은 에러가 발생했다.
java.util.ArrayList cannot be cast to [Ljava.lang.String
프론트에서 ['a', 'b'] 와 같이 배열타입을 넘겼을때 Java에서 발생한 에러이다.
java에서 HashMap<String, Object>로 값을 받을때
해당 배열은 ArrayList로 받아진다.
자동으로 데이터 통신시 해당 데이터 타입을 ArrayList로 타입캐스팅을 하는것이다.
처음에 String[] 타입으로 데이터를 받으려고 하니 타입미 맞지 않아 에러가 발생한 것이다.
따라서 다음과 같은 방식으로 배열값을 String[]로 변환하였다.
📌 초기 데이터 타입 - ArrayList<String>
📌 최종 데이터 타입 - String[]
💻 XMLHttpRequest(XHR) 예제
public testData testFunc(HashMap<String, Object> myData) throws Exception {
ArrayList <String> userNameTmp = (ArrayList<String>) myData.get("userName");
String[] userName = userNameTmp.toArray(new String[0]);
}
'과거의 이력 > JAVA' 카테고리의 다른 글
[JAVA] HashMap LinkedHashMap 차이점 (0) | 2022.08.08 |
---|---|
[error] 자바 Required String parameter is not present 에러 원인 (0) | 2022.07.14 |
[JAVA] 변수 타입 확인하기 (0) | 2022.07.12 |
[Servlet] HTTP 세션 상태관리 (0) | 2022.07.08 |
Spring Boot에서 Vue 프로젝트를 띄우기 위한 구성 (0) | 2022.06.08 |