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