>Java >java지도 시간 >런타임 시 동적 ArrayList 항목 유형과 함께 Gson TypeToken을 사용하는 방법은 무엇입니까?

런타임 시 동적 ArrayList 항목 유형과 함께 Gson TypeToken을 사용하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-05 17:16:11354검색

How to Use Gson TypeToken with Dynamic ArrayList Item Types at Runtime?

런타임에 동적 ArrayList 항목 유형을 사용하는 Gson TypeToken

JSON으로 작업할 때 Gson을 사용하여 JSON 데이터를 형식화된 객체로 변환하는 것이 일반적입니다. 그러나 구문 분석해야 하는 ArrayList 항목의 유형이 리플렉션을 사용하여 런타임에 동적으로 결정되는 시나리오가 발생할 수 있습니다. 이러한 경우 기존 TypeToken 접근 방식은 부족할 수 있습니다.

예를 들어 다음 코드를 고려하세요.

Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);

이 코드는 JSON 문자열을 myClass 개체 목록으로 변환합니다. 하지만 ArrayList의 항목 유형을 동적으로 결정해야 한다면 어떻게 될까요?

이를 달성하려면 Gson 버전 2.8.0에 도입된 새로운 기능인 TypeToken.getParameterized를 활용할 수 있습니다. 이 방법을 사용하면 지정된 매개변수화된 유형으로 TypeToken을 생성할 수 있습니다.

사용 방법은 다음과 같습니다.

private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
    Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, type).getType();
    return typeOfObjectsListNew;
}

ArrayList 클래스와 동적 항목 유형 클래스 유형을 인수로 전달 TypeToken.getParameterized에 대해 원하는 항목 유형의 ArrayList를 나타내는 TypeToken을 생성합니다. 그런 다음 이 TypeToken을 Gson.fromJson의 매개변수로 사용하여 JSON 데이터를 원하는 목록 유형으로 올바르게 구문 분석할 수 있습니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.