> Java > java지도 시간 > 동적 항목 유형을 사용하여 ArrayList에 대한 Gson TypeToken을 만드는 방법은 무엇입니까?

동적 항목 유형을 사용하여 ArrayList에 대한 Gson TypeToken을 만드는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-11 13:45:10
원래의
1007명이 탐색했습니다.

How to Create a Gson TypeToken for an ArrayList with a Dynamic Item Type?

동적 ArrayList 항목 유형이 포함된 Gson TypeToken

Gson에서 TypeToken은 알 수 없는 유형에 대한 유형 정보를 생성하는 데 사용할 수 있는 유틸리티 클래스입니다. 런타임에. 이는 일반적으로 JSON 문자열을 Java 객체로 역직렬화하는 데 사용됩니다.

목록 작업 시 ArrayList의 항목 유형이 런타임에 동적으로 정의되도록 할 수 있습니다. 이는 리플렉션을 사용하여 수행할 수 있습니다.

문제:

다음 코드는 동적 항목 유형이 있는 목록에 대해 TypeToken을 생성하려고 시도합니다.

private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
    Type typeOfObjectsListNew = new TypeToken<ArrayList<T>>() {}.getType();
    return typeOfObjectsListNew;
}
로그인 후 복사

그러나 이 접근 방식은 유형 불일치로 인해 JSON 문자열을 객체로 변환할 때 SQLException이 발생합니다. 정의.

해결책:

Gson 2.8.0부터 TypeToken#getParameterized(Type rawType, Type... typeArguments)를 사용하여 TypeToken을 생성할 수 있습니다. 동적 항목 유형이 포함된 목록입니다. 해결책은 다음과 같습니다.

Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, myClass).getType();
로그인 후 복사

이렇게 하면 지정된 동적 항목 유형(myClass)을 사용하여 ArrayList에 대한 TypeToken이 생성됩니다. 그런 다음 getType()을 사용하여 역직렬화에 사용할 유형 정보를 검색할 수 있습니다.

위 내용은 동적 항목 유형을 사용하여 ArrayList에 대한 Gson TypeToken을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿