>Java >java지도 시간 >TypeToken을 사용하여 Gson에서 일반 컬렉션을 역직렬화하는 방법은 무엇입니까?

TypeToken을 사용하여 Gson에서 일반 컬렉션을 역직렬화하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-07 03:57:19753검색

How to Deserialize Generic Collections in Gson Using TypeToken?

Gson을 사용하여 일반 컬렉션 역직렬화

Google Gson을 사용하여 목록 개체를 역직렬화하려고 하지만 다음과 같은 문제에 직면하고 있습니다. 일반 유형.

대체 접근 방식

현재 발생한 오류는 new List() {}가 상속된 추상 메서드를 구현하지 않음을 나타냅니다. 대신 TypeToken을 사용하여 런타임 시 일반 유형을 지정할 수 있습니다.

Type listType = new TypeToken<List<MyClass>>() {}.getType();
MyClass mc = new Gson().fromJson(result, listType);

예외 처리

현재 발생한 NullPointerException은 목록 유형이 그렇지 않음을 나타냅니다. 올바르게 포맷되었습니다. 다음을 확인하세요.

  • 결과가 null이 아닌지 확인하세요.
  • listType을 디버깅하여 매개변수화된 유형이 올바르게 설정되었는지 확인하세요.

TypeToken 설명

TypeToken 클래스를 사용하면 컴파일 시 일반 유형을 캡처할 수 있습니다. 시간을 지정하고 이를 런타임 유형으로 표현합니다. 익명 하위 클래스는 특정 유형 정보를 캡슐화하여 Gson이 해당 객체를 올바르게 역직렬화할 수 있도록 합니다.

향후 참조 개발자

  • https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/TypeToken.html
  • https://stackoverflow.com/questions/12112101/gson-and-multiple-type-parameters-in-generic-class

위 내용은 TypeToken을 사용하여 Gson에서 일반 컬렉션을 역직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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