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

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

Susan Sarandon
Susan Sarandon원래의
2024-12-11 13:45:101064검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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